Validate TextArea
In this section, you will learn how to validate your text area in struts 2. A text area contains 1 to 250 characters. It cann't support "null" value.
For validating your text are in your application follows the certain steps:
Step 1: Create index.jsp page
Here is the code to be added in the index.jsp:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"> <html> <head> <title>RoseIndia.Net Struts 2 Tutorial</title> </head> <body> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" width="400"> <tr> <td><font color="#000080" size="5"><b>RoseIndia.net Struts 2 Tutorials</b><br> </font></td> </tr> <tr> <td><font color="#000080"><b>Select the following links to test the examples</b></font></td> </tr> <tr> <td> <ul> <li><a href="roseindia/characterLimit.action">Characters and limiting Example</a></li> </ul> </td> </tr> <tr> <td><font color="#000080"> <br> <br> <br> Visit <a href="http://www.roseindia.net">http://www.roseindia.net</a> for latest tutorials</font></td> </tr> </table> </center> </div> <p align="center"> </p> </body> </html> |
Step 2: Create an action mapping in the struts.xml file.
Here is the code to be added in the struts.xml:
<?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> <!-- Rose India Struts 2 Tutorials --> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="roseindia" namespace="/roseindia" extends="struts-default"> <action name="characterLimit"> <result>/pages/chatQuestion/limitedCharacter.jsp</result> </action> <action name="characterLimit1" class="net.roseindia.limitedCharacterAction"> <result name="error">/pages/chatQuestion/limitedCharacter.jsp</result> <result name="success">/pages/chatQuestion/limitedCharacterSuccess.jsp</result> </action> </package> <!-- Add packages here --> </struts> |
Step 3: Create a JSP page that contains text area and submit button:
Here is the code to be added in the limitedCharacter.jsp:
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Limited Characters in Text Area</title> <s:head theme="ajax" /> </head> <body> <s:form action="characterLimit1" method="POST" validate="true"> <s:textarea name="summary1" label="Brief Summary" rows="6" cols="40"/> <s:submit value="Save" align="center" /> </s:form> </body> </html> |
Step 4: Create an action class:
Here is the code to be added in thelimitedCharacterAction.java:
package net.roseindia; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import java.io.PrintStream; import java.util.List; import java.util.*; public class limitedCharacterAction extends ActionSupport{ private String summary1; public String getSummary1() { return summary1; } public void setSummary1(String summary1) { this.summary1 = summary1; } public String execute() throws Exception{ String summaryText = getSummary1(); long countSummaryText = summaryTextcount(summaryText); System.out.println("countSummaryText:"+countSummaryText); if (countSummaryText >0 && countSummaryText < 250){ return SUCCESS; } else{ if(getSummary1().equals("")) addFieldError("summary1","Brief Summary is required."); if((countSummaryText > 250)) addFieldError("summary1","Brief Summary must be 1 to 250 Charaters"); return ERROR; } } private static long summaryTextcount(String str){ return str.length(); } } |
Step 5: Create a JSP page that contains the inputted text in the textarea:
Here is the code to be added in limitedCharacterSuccess.jsp:
<%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>Limited Characters in Text Area</title> <link href="<s:url value="/css/main.css"/>" rel="stylesheet" type="text/css"/> </head> <body> <b>Brief Summary: </b><s:property value="summary1" /><br> </body> </html> |
Output:
When you click the "Save" command button with out any data then you get:
If you enter more than 250 characters then you get :
If you enter your text between 1 to 250 characters then you get: