原创作者: 饕尽天下   阅读:7447次   评论:0条   更新时间:2011-06-01    

本章将讨论Struts2中的RequiredString验证器.

RequiredString验证器检查String字段是不是null且长度是不是大于0(也就是说不能是"").在执行长度检查之前,trim参数就确定了字符串.默认情况下,字符串都会被修整(trim,除去字符串前后的空格)

如果用户在输入域什么都不填写就提交了表单, requiredString验证器就会生成错误信息.之后错误信息将显示给用户.

本例通过用户输入他的/她的user name的简单的数据输入表单来演示如何使用struts2RequiredString验证器.按照下面的步骤创建例子程序 :

第一步 : 创建并添加下面的代码到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' :

你将得到 :

  • 大小: 1.6 KB
  • 大小: 1.7 KB
  • 大小: 353 Bytes
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics