Como configurar o Tiles do Struts corretamente?

0 respostas
danieldomingues86

Ola pessoal,

Estou tentando configurar o Tiles no meu projeto com Struts so que da sempre o mesmo erro.

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.IllegalArgumentException: Path sucesso.page does not start with a "/" character
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Segue o codigo :

tiles-defs.xml

<?xml version="1.0" encoding="UTF-8" ?>

 <!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
       "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">

<tiles-definitions>

	<definition name="base.definition" path="/SiteLayout.jsp">
		<put name="title" value="Ecommerce" />
		<put name="header" value="/header.jsp" />
		<put name="footer" value="/footer.jsp" />
		<put name="body" value="" />
	</definition>
	
	<definition name="/sucesso.page" extends="base.definition">
	<put name="title" value="Sucesso"></put>
	<put name="body" value="/ok.jsp"></put>
	</definition>


</tiles-definitions>

struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>

	<form-beans>
		<form-bean name="LoginForm" type="br.com.caelum.struts.form.LoginForm"></form-bean>
		<form-bean name="ContatoForm" type="br.com.caelum.struts.form.ContatoForm"></form-bean>
	</form-beans>

	<action-mappings>

		<action path="/efetuaLogin" name="LoginForm" scope="request"
			type="br.com.caelum.struts.action.LoginAction">
			<forward name="erro" path="/erro.jsp" />
			<forward name="ok" path="sucesso.page" />
		</action>

	</action-mappings>

	<!--  Arquivo properties -->
	<message-resources parameter="MessageResources"></message-resources>

	<plug-in className="org.apache.struts.tiles.TilesPlugin">
		<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
		<set-property property="moduleAware" value="true" />
	</plug-in>

</struts-config>

SiteLayout.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@ taglib uri="/WEB-INF/tld/struts-tiles.tld" prefix="tiles" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><tiles:getAsString name="title" /></title>
</head>
<body>
<table border="0" width="100" cellspacing="5">
<tr><td><tiles:insert attribute="header"/></td></tr>
<tr><td><tiles:insert attribute="body"/></td></tr>
<tr><td><hr></td></tr>
<tr><td><tiles:insert attribute="footer"/></td></tr>
</table>
</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">

	<jsp-config>
		<taglib>
			<taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri>
			<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
		</taglib>
		<taglib>
			<taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>
			<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
		</taglib>
		<taglib>
			<taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri>
			<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
		</taglib>
		<taglib>
			<taglib-uri>/WEB-INF/tld/struts-nested.tld</taglib-uri>
			<taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
		</taglib>
		<taglib>
			<taglib-uri>/WEB-INF/tld/struts-tiles.tld</taglib-uri>
			<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
		</taglib>
	</jsp-config>


	<servlet>
		<servlet-name>struts</servlet-name>
		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

		<init-param>
			<param-name>config</param-name>
			<param-value>/WEB-INF/struts-config.xml</param-value>
		</init-param>

		<init-param>
			<param-name>debug</param-name>
			<param-value>2</param-value>
		</init-param>

		<init-param>
			<param-name>detail</param-name>
			<param-value>2</param-value>
		</init-param>

		<init-param>
			<param-name>validate</param-name>
			<param-value>true</param-value>
		</init-param>

		<load-on-startup>2</load-on-startup>

	</servlet>

	<servlet-mapping>
		<servlet-name>struts</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

</web-app>

As TLD’s estao corretamente colocadas na pasta /WEB-INF/tld/

e a pagina onde deveria chegar sem erros :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
Voce se logou com sucesso! 

<form action="logout.do">
	<input type="Submit" value="Logout">
</form>

</body>
</html>

Se alguem soube por favor, realmente agradeco a explicacao.
Muito Obrigado.

Criado 6 de setembro de 2009
Respostas 0
Participantes 1