Para instruir o struts que o helloAction.java, helloOk.jsp e helloReq.jsp estão relacionados, é necessário criar este mapa no arquivo struts.xml e alterar o arquivo web.xml com a declaração para o Struts.
Para criar o arquivo struts.xml, vá na pasta src, clique na opção New → File→Other... →XML→XML File e crie o arquivo struts.xml.
Este arquivo deverá ter o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="helloPack" extends="struts-default"> <action name="hello" class="helloPack.HelloAction" method="execute"> <result name="success">/HelloOK.jsp</result> </action> </package> </struts>
Nos últimos arquivos gerados, repare os seguintes mapeamentos:
| helloReq.jsp | Struts.xml |
|---|---|
<form action="hello"> |
<action name="hello" class="helloPack.HelloAction" method="execute"> <result name="success">/HelloOK.jsp</result> </action> |
| Struts.xml | HelloAction.java |
|---|---|
<action name="hello" class="helloPack.HelloAction" method="execute"> <result name="success">/HelloOK.jsp</result> </action> |
package helloPack; public class HelloAction { |
|
Atenção quando estiver definindo os nomes dos arquivos, pois a não coincidência dos nomes nestes arquivos leva a erros de difícil detecção. Geralmente, erros nestes locais são exibidos na página como “HTTP Status 404 - There is no Action mapped for namespace [/] and action name [hello] associated with context path”, por exemplo. |