Problema com o Tiles

4 respostas
P

bom pessoal, comecei a usar o Tiles para montar minha camada de visualização, até aí beleza, montei o definition e tal, funcionou blz, mas tem um atributo no definition que se chama error, que contém,

<definition name="usuarios.view" path="/view/usuarioNovo.jsp">
   <put name="erros" value="/view/blocos/erros.jsp"/>
   <put name="tabela" value="/view/blocos/tabelaGerencia.jsp" />
</definition>

e dentro dessa jsp erros.jsp contém apenas:

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

no jsp principal esta assim:

<tiles:get name="erros"/>
<tiles:get name="tabela"/>

só que toda hora que a minha aplicação lança um erro, da NullPointer, alguém sabe porque isso esta acontecendo?
vlw!

4 Respostas

P

tipo… esse html:errors/ soh vai fazer aparecer algo na tela quando eu tiver algum erro no validate, quando eu não usei o tiles colocando tudo no mesmo jsp, funcionou blz…

P

bom pessoal,
descobri que este problema acontece devido a alguma problema no forward, como eu estou usando o Struts-validate, quando meu form não passa na validação ele volta direto pro jsp, não passa pelos action, aí to achando e tem algumca relação com isso…
a msg de erro é a seguinte:

org.apache.jasper.JasperException

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)

org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)

org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1023)

org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:345)

org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:988)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:207)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)

javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause
java.lang.NullPointerException

org.apache.struts.taglib.tiles.InsertTag.processName(InsertTag.java:527)

org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java:482)

org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:438)

org.apache.jsp.view.usuarioNovo_jsp._jspx_meth_tiles_get_0(org.apache.jsp.view.usuarioNovo_jsp:185)

org.apache.jsp.view.usuarioNovo_jsp._jspService(org.apache.jsp.view.usuarioNovo_jsp:114)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)

org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)

org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1023)

org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:345)

org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:988)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:207)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)

javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
J

Vá lá no seu arquivo struts-config.xml e veja o que tem na propriedade input da sua action. É isso que o struts vai executar caso o validate achar algum erro e não vai pra action pois o validate será executado antes de executar a action.

Segue exemplo básico abaixo:

<global-forwards>
<forward name="telaMsgErro" path="/htdocs/telaErro.jsp" contextRelative="true"/>	
</global-forwards>

<action name="ConsultarDadosGeraisEmpresaForm" path="/actionTela" parameter="dscAcao" type="br.com.sistema.controller.actions.empresa.DadosGeraisEmpresaActions" 
validate="true" input="telaMsgErro">
<forward name="sucesso" path="/htdocs/programas/empresa/telaEmpresa.jsp" contextRelative="true" />
</action>
P

isso msm cara!!!
valew pela ajuda…
erro bobo neh…

Criado 26 de maio de 2006
Ultima resposta 31 de mai. de 2006
Respostas 4
Participantes 2