Pessoal,
Eu tenho o seguinte exemplo:
1) Dados de um membro (Nome... + endereço) gravados no BD.
2) Através do link http://localhost:8080/App/membro/edit.java?id=1 eu carrego o membro de código = 1 no form através de Expression Language, buscando a session.
O meu problema está quando eu tento fazer a validação no servidor das informações atualizadas desse form, porque o mapeamento da minha action faz validate = true e input = /membro/edit.java
<action path="/membro/edit" type="app.membro.MembroEditAction">
<forward name="sucess" path="/pages/Membro_Edit.jsp" redirect="false"/>
<forward name="error" path="/Error.java" redirect="false"/>
</action>
<action path="/membro/update" type="webigreja.membro.MembroUpdateAction" name="form_membro" scope="request" validate="true" input="input">
<forward name="input" path="/membro/edit.java" redirect="false"/>
<forward name="sucess" path="/membro/list.java" redirect="true"/>
<forward name="error" path="/Error.java" redirect="false"/>
</action>
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
try {
Membro membro = new Membro();
membro= new MembroDAO().getMembroById(Integer.parseInt(request.getParameter("id")));
request.getSession().setAttribute(Constante.KEY_MEMBRO_EDIT, membro);
return mapping.findForward(Constante.FORWARD_SUCESSO);
} catch (Exception ex) {
return mapping.findForward(Constante.FORWARD_ERRO);
}
}
10:12:06,890 ERROR MembroEditAction:27 -
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at app.membro.MembroEditAction.execute(MembroEditAction.java:23)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:963)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:204)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at app.MyFilter.doFilter(MyFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:833)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1285)
at java.lang.Thread.run(Unknown Source)
Pessoal, não sei se ficou claro o que quero, mas quem puder me ajudar eu agradeço... Ou me mostrar qual é a melhor forma de fazer um form de Edição com validação..
Ps.: A Exception lançada é porque quando dá erro de validação, a minha action chama novamente a página /membro/edit.java mas não passa nenhum parametro...
Agradeço...