本章将讨论Struts2中的RequiredString验证器.
RequiredString验证器检查String字段是不是null且长度是不是大于0(也就是说不能是"").在执行长度检查之前,trim参数就确定了字符串.默认情况下,字符串都会被修整(trim,除去字符串前后的空格)
如果用户在输入域什么都不填写就提交了表单, requiredString验证器就会生成错误信息.之后错误信息将显示给用户.
本例通过用户输入他的/她的user name的简单的数据输入表单来演示如何使用struts2的RequiredString验证器.按照下面的步骤创建例子程序 :
第一步 : 创建并添加下面的代码到struts.xml文件
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">
<!-- Add actions here -->
<!-- string validation -->
<action name="stringValidation" class="net.roseindia.StringVaLidationAction">
<result name="input">/pages/stringInputForm.jsp</result>
<result name="error">/pages/stringInputForm.jsp</result>
<result>/pages/stringSuccess.jsp</result>
</action>
<!-- Add actions here -->
</package>
<!-- Add packages here -->
</struts>
第二步 : 创建输入表单
stringInputForm.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Input form</title>
<link href="<s:url value="/css/main.css"/>" rel="stylesheet"
type="text/css"/>
<s:head/>
</head>
<body>
<s:form method="POST" action="stringValidation">
</td>
</tr>
<s:textfield label="Enter User Number" name="username" maxlength="10" />
<s:submit />
</s:form>
</body>
</html>
第三步 : 创建Action类
StringVaLidationAction.java
package net.roseindia;
import com.opensymphony.xwork2.ActionSupport;
public class StringVaLidationAction extends ActionSupport{
private String username;
public String execute() throws Exception{
if (getUsername() != null){
return SUCCESS;
}
else{
return ERROR;
}
}
public void setUsername(String username){
this.username = username;
}
public String getUsername(){
return username;
}
}
第四步 : 创建验证器
验证器文件的格式应该是<ActionClassName>-validation.xml或者<ActionClassName>-<ActionAliasName>-validation.xml.
RequiredString验证器 : RequiredString验证器检验String字段是不是null,并且长度是不是大于0(也就是说不是"")."trim"参数在执行长度检查之前就确定了字符串.如果未指定该参数,字符串将会被裁剪(去除字符串前后的空格).如果在text字段有任何字符串输入,那么你将跳转到stringSuccess.jsp页面.否则它显示xml文件中指定的错误信息(User Name is required.) RequiredString验证器有如下参数 :
l fieldName : 这是要被验证的字段名.如果使用Plain-Validator语法这将是必填的,否则不是必填项.
l trim : 这是验证前字段名的值(默认为true)
StringVaLidationAction-validation.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>User Name is required</message> </field-validator> </field> </validators>
当你在text域输入任何字符串的时候,你一定会跳转到stringSuccess.jsp页面,并且该页面显示你输入的字符串和"Welcome to Vinod "信息.
stringSuccess.jsp
<%@page language="java" %> <html> <head> <title>Correct entry</title> </head> <body> <b>Welcome to </b><%=request.getParameter("username") %>! </body> </html>
输出 :
当程序执行时,显示如下 :
当你输入字符串'Vinod Kumar' :
你将得到 :