Caros,
estou começando o estudo de Struts,e estou com algumas duvidas com relaçao aos ActionForms:
Supondo um formulario html com um atributo nome,devidamente mapeado para um ActionFOrm. Segue o codigo
<struts-config>
<form-beans>
<form-bean name="formulario" type="Formulario"/>
</form-beans>
<action-mappings>
<action path="/gravar" type="Acao">
<name="formulario"/>
</action-mappings>
Duvidas:
1)Meu do html deve apontar para o path da classe Action?
- A comunicaçao entre o Action e o ActionForm eh feita passando o atributo name do ActionFOrm ao Action?
Nao sei se estou sendo mto claro,mas aguardo respostas…Abraços!!
O “action” do <html:form/> deve ser o “path” do action e o “name” do action deve ser o “name” do <formbean>.
http://struts.apache.org/userGuide/building_controller.html#action_form_classes
Estou fazendo exatamente dessa forma,no entanto qdo submeto o formulario ele indica um erro dizendo q nao pode achar o path q indiquei no html:form…
Minha pagina inicial(marcada com no web.xml):
<html>
<body>
<form action='logon'>
Nome:<input type="text" name="nome">
<input type="submit" value="Enviar">
</form>
</body>
</html>
o ActionForm:
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
public class Formulario extends ActionForm {
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public void reset(ActionMapping map,HttpServletRequest request){
nome=null;
}
}
a class Action:
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
public class Act extends Action {
public ActionForward execute(ActionMapping map,
ActionForm form,HttpServletRequest request,
HttpServletResponse response){
String nome=request.getParameter("nome");
ActionForward af=new ActionForward();
if(nome.length()==0) {
af.setPath("/erro.jsp");
}
return af;
}
}
e o struts-config:
<struts-config>
<form-beans>
<form-bean name="formulario" type="Formulario"/>
</form-beans>
<action-mappings>
<action path="/logon" type="Act">
name="formulario"/>
</action-mappings>
</struts-config>