Suportes usando o formulário dinâmico da ação |
Formulário dinâmico da ação
|
- DynamicActionForm elimina a necessidade da classe de FormBean. A definição do feijão do formulário pode ser escrita na lima de struts-config.xml.
- Para reduzir o momento de desenvolvimento para o colaborador, faz FormBean declarativo.
-
Para criar uma classe de Java para cada tipo de feijão do formulário, DynamicActionForm é usado como o subclass especializado de ActionForm que permite a criação dos feijões do formulário com jogos dinâmicos das propriedades, sem reque o colaborador.
Nós recrearemos adicionamos o formulário com a ajuda de DynaActionForm neste tutorial. Na classe da ação, ele também mostras você como você pode validar a entrada do uso.
|
Adicionando a entrada de DynaActionForm em struts-config.xml
|
No início, na lima de struts-config.xml nós adicionaremos a entrada necessária. O feijão do formulário é do tipo de org.apache.struts.action.DynaActionForm. Para definir a propriedade para o feijão do formulário, o Tag de <form-property/> é usado. Três propriedades para nosso feijão dinâmico do formulário.
|
<form-bean name="DynaAddressForm"
type="org.apache.struts.action.DynaActionForm">
<form-property name="name" type="java.lang.String"/>
<form-property name="address" type="java.lang.String"/>
<form-property name="email" type="java.lang.String" />
</form-bean>
|
|
Adicionando traçar da ação
|
Na lima de struts-config.xml, adicionar seguinte traçar da ação
|
<action path="/DynaAddress" type="roseindia.net.AddressDynaAction"
name="DynaAddressForm"
scope="request"
validate="true"
input="/pages/DynaAddress.jsp">
<forward name="success" path="/pages/success.jsp"/>
<forward name="invalid" path="/pages/DynaAddress.jsp" />
</action>
|
|
Criando a classe da ação
|
O seguinte código é para a classe da ação:
|
package academictutorials;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionMessage;
public class AddressDynaAction extends Action
{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception
{
DynaActionForm addressForm = (DynaActionForm)form;
//Create object of ActionMesssages
ActionMessages errors = new ActionMessages();
//Check and collect errors
if(((String)addressForm.get("name")).equals(""))
{
errors.add("name",new ActionMessage("error.name.required"));
}
if(((String)addressForm.get("address")).equals(""))
{
errors.add("address",new ActionMessage("error.address.required"));
}
if(((String)addressForm.get("email")).equals(""))
{
errors.add("email",new ActionMessage("error.emailaddress.required"));
}
//Saves the error
saveErrors(request,errors);
//Forward the page
if(errors.isEmpty())
{
return mapping.findForward("success");
}
else
{
return mapping.findForward("invalid");
}
}
}
|
|
Criando a lima de JSP
|
Na lima do jsp, nós usaremos o formulário DynaAddressForm de Dyna criado acima. O seguinte exemplo é o código da lima do jsp (DynaAddress.jsp)
|
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<html:html locale="true">
<head>
<title><bean:message key="welcome.title"/></title>
<html:base/>
</head>
<body bgcolor="white">
<html:form action="/DynaAddress" method="post">
<table>
<tr>
<td align="center" colspan="2">
<font size="4">Please Enter the Following Details</font>
</tr>
<tr>
<td align="left" colspan="2">
<font color="red"><html:errors/></font>
</tr>
<tr>
<td align="right">
Name
</td>
<td align="left">
<html:text property="name" size="30" maxlength="30"/>
</td>
</tr>
<tr>
<td align="right">
Address
</td>
<td align="left">
<html:text property="address" size="30" maxlength="30"/>
</td>
</tr>
<tr>
<td align="right">
E-mail address
</td>
<td align="left">
<html:text property="email" size="30" maxlength="30"/>
</td>
</tr>
<tr>
<td align="right">
<html:submit>Save</html:submit>
</td>
<td align="left">
<html:cancel>Cancel</html:cancel>
</td>
</tr>
</table>
</html:form>
</body>
</html:html>
|
|
Em index.jsp, adicionar a seguinte linha para chamar o formulário.
|
<li>
<html:link page="/pages/DynaAddress.jsp">Dyna
Action Form Example</html:link>
<br>
Example shows you how to use DynaActionForm.
</li>
|
|
Exemplo e testar do edifício
|
Ir aos suportes \ diretório strutstutorial e datilografar a formiga no alerta de comando à configuração e desdobrar a aplicação. Isto ajudará desdobrar a aplicação. Abrir o browser e datilografar a página de DynaAddress.jsp. No formulário, sem incorporar qualquer coisa e submeter a tecla submeter-se.
|
Keywords:
struts api,struts tutorial,dynamic html,java struts,struts example,struts apache,struts jakarta,tiles struts,jsp action,struts validation,struts framework,html action,struts scope,struts validate,struts method,form html,javascript action,validator struts,struts redirect,jsp struts,jstl struts,struts parameter
|