How to use dyna validator form and how to do date validation in struts

Here I am explaining how to use dyna action and how to do date validation in struts.

DynaDateAction

package com.DynaAction.DateValidation;
import org.apache.struts.action.*;
import org.apache.struts.validator.DynaValidatorForm;
import javax.servlet.http.*;
import java.util.*;
public class DynaDateAction extends Action{
public ActionForward execute(ActionMapping map,ActionForm form,HttpServletRequest req,HttpServletResponse res)throws Exception
{
DynaValidatorForm login=(DynaValidatorForm)form;
String na=(String)login.get("name");
String da= (String) login.get("date");
req.setAttribute("n1",na);
req.setAttribute("p1",da);
return map.findForward("success");

}
}

ApplicationResources.properties

errors.ioException=I/O exception rendering error messages: {0}
error.database.missing=<li>User database is missing, cannot validate logon credentials</li>
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.
errors.byte={0} must be an byte.
errors.short={0} must be an short.
errors.integer={0} must be an integer.
errors.long={0} must be an long.
errors.float={0} must be an float.
errors.double={0} must be an double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is not a valid credit card number.
errors.email={0} is an invalid e-mail address.

dynaloginbean.name=Name
dynaloginbean.date=Date

struts-config.xml

<struts-config>

<form-beans>
<form-bean name="dynaloginbean" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="name" type="java.lang.String"/>
<form-property name="date" type="java.lang.String"/>
</form-bean>
</form-beans>
<action-mappings>
<action name="dynaloginbean"
path="/dynalogin"
type="com.DynaAction.DateValidation.DynaDateAction"
scope="request"
input="/DynaLogin.jsp"
validate="true">
<forward name="success" path="/DynaSuccess.jsp" />
</action>
</action-mappings>
<message-resources parameter="ApplicationResources"></message-resources>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>

validation.xml

<form-validation>
<formset>
<form name="dynaloginbean">
<field
property="name"
depends="required">
<arg position="0" key="dynaloginbean.name" />
</field>
<field
property="date"
depends="required,date">
<arg position="0" key="dynaloginbean.date" />
<var>
<var-name>datePattern</var-name>
<var-value>MM/dd/yyyy</var-value>
</var>
</field>

</form>
</formset>
</form-validation>

web.xml

<web-app>

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>DynaLogin.jsp</welcome-file>
</welcome-file-list>

<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
</web-app>

DynaLogin.jsp

<%@ taglib uri="/tags/struts-html" prefix="html"%>

<html:html>

<body>
<br><br>
<center><u><h2>DynaDateForm</h2></u>
<html:javascript formName="dynaloginbean"/>
<html:form action="/dynalogin" onsubmit="return validateDynaloginbean(this);">

Name:<html:text property="name" value="" />
<html:errors property="name" /><br><br>
DatePattern:<html:text property="date" value="" />
<html:errors property="date" /><br><br>
<html:submit value="submit" />
</html:form>
</body>
</html:html>

DynaSuccess.jsp

<html>
<body><br><br><center>
<h2>Welcome To <%=request.getAttribute("n1")%></h2>
<b>Given Date Is <%=request.getAttribute("p1")%></b></center>
</body>
</html>

No comments: