| 1600 PMP mock questions | 1400 CAPM mock questions | 800 SCJP 6 mock questions | 600 OCAJP 7 mock questions | 590 OCPJP 7 mock questions | 556 SCWCD 5 mock questions | 500 OCEJWCD 6 mock questions | pdfDownload (java,struts, hibernet etc) | JobsJobs and Walkins |
Struts interview questions
|
!!! Struts interview questions !!!Go to Struts Tutorials >>> new Q.How you will enable front-end client side validation based on the xml in validation.xml?
Validation Framework-Client Side Validation Framework provides the functionality to validate the form data. It can be use to validate the data on the client side. Errors will be displayed like java script. Struts has a class called ValidatorForm in org.apache.struts.validator package. This is a subclass of ActionForm and implements the validate() method. The validate() method invokes the Commons Validator, executes the rules using the two xml files (validator-rules.xml and validation.xml) and generates ActionErrors using the Message Resources defined in the struts-config.xml. validator-rules.xml : The validator-rules.xml file defines the Validator definitions available for a given application. The validator-rules.xml file acts as a template, defining all of the possible Validators that are available to an application. validation.xml File : The validation.xml file is where you couple the individual Validators defined in the validator-rules.xml to components within your application. Follow the below steps to setup Validation Framework in Struts (server side validation ). Step 1. Add validator plugin into struts-config.xml <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/> </plug-in> Step 3. In the JSP page (EmpForm.jsp)- Add onsubmit="return validateempForm(this);" and <html:javascript formName="empForm"/> for Client Side Java Script Validation. <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <html:form> <html:form action="/submitForm.do" method="post" onsubmit="return validateempForm(this);"> <html:errors/> // this is for error message from resource bundle in JSP <html:text property="firstName" size="20" maxlength="50"/> <html:text property="lastName" size="20" maxlength="50"/> <html:submit >Save</html:submit> <!-- Begin Validator Javascript Function--> <html:javascript formName="empForm"/> <!-- End of Validator Javascript Function--> </html:form> Step 4. Add Message Resources location in struts-config.xml <!-- Message Resources --> <message-resources parameter="application_resource"/> Step 5. In the the Resource Bundle. application_resource.properties file //Here you can add localization. label.firstName=First Name label.lastName=Last Name errors.required={0} is required. Step 7. In the EmpForm package com.techfaq.form; public class EmpForm extends ValidatorForm { int empId; String firstName; String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public int getEmpId() { return empId; } public void setEmpId(int empId) { this.empId = empId; } } Step 6. In the validation.xml - The validation.xml file is where you couple the individual Validators defined in the validator-rules.xml to components within your application <form-validation> <formset> <form name="empForm"> <field property="firstName" depends="required"> <arg0 key="label.firstName"/> </field> <field property="lastName" depends="required"> <arg0 key="label.lastName"/> </field> </form> </formset> </form-validation> Step 6. In the validator-rules.xml - The validator-rules.xml file defines the Validator definitions available for a given application. <form-validation> <global> <validator name="required" classname="org.apache.struts.util.StrutsValidator" method="validateRequired" methodparams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest" msg="errors.required"/> </global> </form-validation> Step 5. Add Action mapping and form entry into the stuts-confix.xml and validate="true" is for validation framework to validate the form input. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <form-beans> <form-bean name="EmpForm" type="com.techfaq.form.EmpForm"> </form-bean> </form-beans> <action-mappings> <action path="/submitForm" type="com.techfaq.action.EmpAction" name="EmpForm" scope="request" validate="true" // This need for validation framework to validate the form input input="EmpForm.jsp"> <forward name="success" path="success.jsp"/> <forward name="failure" path="failure.jsp" /> </action> </action-mappings> </struts-config> Now in the browser type http://localhost:8080/testApp/EmpForm.jsp Don't Enter firstName and lastName in the text box and submit the "Save" BUTTON. the RequestProcessor checks for the validateattribute in the ActionMapping. If the validate is set to true, the RequestProcessor invokes the validate() method of the ValidatorForm instance. If Validate fail the RequestProcessor looks for the input attribute and return to JSP page mentioned in input tag. If Validate pass goto Action Class execute() method.. If Validate fail , In the browser (EmpForm.jsp) you can see. Java Script pop up Message: First Name is required. Last Name is required. In the empForm firstName and lastName are the required filed. So in the above configuration you can see we add for both firstName and lastName. You can see depends="required" - "required" property is defind in validator-rules.xml. In the resource bundle : application_resource.propertis file label.firstName=First Name label.lastName=Last Name #Error messages used by the Validator errors.required={0} is required. {0} will be filled by (First Name or Last Name) because validation.xml above configuration you have defind <arg0 key="label.lastName"/>. and <arg0 key="label.lastName"/>. |
Suggested JobsMore Jobs >> |