Dúvida com Tiles

1 resposta
A

Oi, pessoal!

Sou novata em JavaEE e preciso da ajuda de vcs. Estou estudando um livro de struts e, ao chegar na parte que usa Tiles, não estou conseguindo fazer o Tiles funcionar. A seguinte exceção é mostrada no browser:

java.lang.IllegalArgumentException: Path .page.Welcome does not start with a "/" character

Não faço idéia do que pode estar errado, por isso, vou descrever de que maneira o projeto está "montado":

No diretório WEB_INF estão, dentre outros, os arquivos struts-config.xml, tiles-defs.xml, struts-tiles.tld e tiles.tld.

Em struts-config:

<global-forwards>
  <forward name="welcome" path="/welcome.do"/>
</global-forwards>

<action-mappings>
  <action name="/welcome" forward=".page.Welcome"/>
</action-mappings>

Em tiles-defs:

<tiles-definitions>     
    <definition name =".page.Welcome"     path="/tiles/layouts/AppLayout.jsp">
        <put name="header" value="/tiles/header.jsp"/>
        <put name="footer" value="/tiles/footer.jsp"/>
        <put name="menu" value="/tiles/menu.jsp"/>
        <put name="body" value="/tiles/body.jsp"/>        
    </definition>

Em web.xml:

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
     ***
 <init-param>
      <param-name>definitions-config</param-name>
      <param-value>/WEB-INF/tiles-defs.xml</param-value>
    </init-param>
    <init-param>
      <param-name>definitions-debug</param-name>
      <param-value>0</param-value>
    </init-param>
    <init-param>
      <param-name>definitions-parser-details</param-name>
      <param-value>0</param-value>
    </init-param>
    <init-param>
      <param-name>definitions-parser-validate</param-name>
      <param-value>true</param-value>
    </init-param>

     ***
<taglib>
    <taglib-uri>/tags/tiles</taglib-uri>
    <taglib-location>/WEB-INF/tiles.tld</taglib-location>
  </taglib>
E finalmente AppLayout.jsp:
<%@ taglib  uri="/tags/tiles" prefix="tiles" %>

<html>    
    <head>
        <html:base/>        
        <link rel = "stylesheet" href = "<html:rewrite page='/pages/topo.css'/> " type = "text/css">
    </head>
    
    <table width="100%" cellspacing="5">
        <tr>
            <td  colspan="2"><tiles:get name="header"/>  </td>
        </tr>
        
        <tr>
            <td width="140"><tiles:get name="menu"/></td>
            <td valign="top"><tiles:get name="body"/></td>
        </tr>
        
        <tr>
            <td colspan="2"><tiles:get name="footer"/></td>
        </tr>
    </table>
    
    </body>
</html>

Desde já agradeço qualquer ajuda.
[]'s! :wink:

1 Resposta

nadilsons

substitua

<definition name =".page.Welcome"     path="/tiles/layouts/AppLayout.jsp">

por

<definition name =".page.Welcome"     path="tiles/layouts/AppLayout.jsp">

Remova todas “/” iniciais para path…

Att

Nadilson

Criado 4 de maio de 2007
Ultima resposta 4 de mai. de 2007
Respostas 1
Participantes 2