Struts + Tiles

2 respostas
M

Pessoal, nãoestou conseguindo fazer funcionar, segue o erro:

javax.servlet.ServletException: Path page.inicio does not start with a "/" character
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)

Vejam minha configuração:

tiles-defs.xml:

<tiles-definitions>
	
	<!-- Base Tiles Definition -->
	<definition name="base.layout" 	template="/shared/layouts/layout.jsp">
        <put name="header" 	 	value="/shared/layouts/includes/header_interno.jsp"	/>
        <put name="menu_top" 	value="/shared/layouts/includes/menu_interno.jsp" 	/>
        <put name="footer" 	 	value="/shared/layouts/includes/bottom_interno.jsp"	/>
    </definition>
	
	<!-- Tiles Definition of welcome page -->
	<definition name="page.inicio" extends="base.layout">
		<put name="body" value="/portal/inicio.jsp" />
	</definition>

</tiles-definitions>

struts-config.xml

<struts-config>

	<!-- Action Mapping Definitions -->

	<action-mappings>
		<action path="/inicio" 
		        type="br.com.bvsistemas.teste.action.InicioAction"
		        input="/index.jsp"
		        scope="request">
			<forward name="inicio" path="page.inicio" />
		</action>
	</action-mappings>

</struts-config>

Action:

public class InicioAction extends DispatchAction{
	
	public ActionForward execute(ActionMapping mapping,
				ActionForm form,
				HttpServletRequest request,
				HttpServletResponse response) {
		
			System.out.println("==== Entrou no meu Action ====");
			return mapping.findForward("inicio");
	}
	
}

Alguém sabe o que pode ser ?

Valew.

2 Respostas

M

Retirando a declaração do Tiles do web.xml e alterarando o struts-config.xml para:

<struts-config>

	<controller bufferSize="4096" debug="0" />

	<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" bufferSize="4096" debug="0" />
	
	<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" />
		<set-property property="definitions-parser-validate" value="true" />
	</plug-in>

	<!-- Action Mapping Definitions -->

	<action-mappings>
		<action path="/page/inicio" 
		        type="br.com.bvsistemas.teste.action.InicioAction">
			<forward name="inicio" path="page.inicio" />
		</action>
	</action-mappings>

</struts-config>

Ai dá o seguinte erro:

HTTP Status 404 - Servlet action is not available

Qual a melhor opção para o struts-config.xml ? e no que estou errando ?

M

Funcionou… tive que mudar a versão do DOCTYPE do tiles-defs.xml para 1.1 e colocar a seguinte declaração no web.xml:

<init-param>
     <param-name>chainConfig</param-name>
     <param-value>org/apache/struts/tiles/chain-config.xml</param-value>
</init-param>

Valew.

Criado 20 de janeiro de 2009
Ultima resposta 20 de jan. de 2009
Respostas 2
Participantes 1