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

Struts2Double验证器检查给定的输入是否为double .如果输入不是double,它生成错误信息.Double验证器同样可以用来检查输入范围.本例用来演示如何使用Double验证器来检查输入范围.

按照下面的步骤创建double范围验证器的例子 :

第一步 : 创建struts.xml文件并添加下面的xml代码到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 -->

    <!-- double validation -->

    <action name="doubleValidation" class="net.roseindia.DoubleVaLidationAction">
      <result name="input">/pages/doubleInputForm.jsp</result>
      <result name="error">/pages/doubleInputForm.jsp</result>
            <result>/pages/doubleSuccess.jsp</result>
        </action>

         <!-- Add actions here -->
    </package>


    <!-- Add packages here -->

</struts> 

第二步 : 创建输入表单

doubleInputForm.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="doubleValidation">
   </td>
  </tr>
    <s:textfield label="Enter Total Percentage Marks" name="percentagemarks" maxlength="10" />
    <s:submit />
  </s:form>

</body>

</html> 

第三步 : 创建Action

DoubleVaLidationAction.java

package net.roseindia;
import com.opensymphony.xwork2.ActionSupport;

public class DoubleVaLidationAction extends ActionSupport{

  private double percentagemarks;

  public String execute() throws Exception{
   
    return SUCCESS;
  /*/*if (getPercentagemarks() > 20.1 && getPercentagemarks() < 50.1){
      return SUCCESS;
    }
    else{
      return ERROR;
    }
*/
  }

  public void setPercentagemarks(double percentagemarks){
    this.percentagemarks = percentagemarks;
  }
  public double getPercentagemarks(){
    return percentagemarks;
  }
}

第四步 : 创建验证器
验证器文件的格式应该是<ActionClassName>-validation.xml或者<ActionClassName>-<ActionAliasName>-validation.xml.

Double验证器 : 该字段验证器检查输入的数字是不是double的且是否在指定的范围内.如果你输入了在指定的范围内的有效的值,你将跳转到doubleSuccess.jsp页面.否则它将显示xml中指定的错误信息(Percentage marks need to between 20.1 and 50.1).Double验证器有如下参数 :

l        fieldName : 这是验证器要验证的字段名.如果使用int-Validator语法将是必填的,否则不是必填项.

l        minInclusive : Java语言指定的FloatValue形式的最小包括值.(如果什么都未指定,它将不会检查)

l        maxInclusive : Java语言指定的FloatValue形式的最大包括值.(如果什么都未指定, 它将不会检查)

l        minExclusive : Java语言指定的FloatValue形式的最小非包括值.(如果什么都未指定, 它将不会检查)

l        maxExclusive : Java语言指定的FloatValue形式的最大非包括值.(如果什么都未指定, 它将不会检查)

DoubleVaLidationAction-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="percentagemarks">
    <field-validator type="double">
      <param name="minInclusive">20.1</param>
              <param name="maxInclusive">50.1</param>
              <message>Percentage marks need to between 
${minInclusive} and ${maxInclusive}</message>
    </field-validator>
  </field>

</validators> 

当输入任何在指定范围内的double,你一定会跳转到doubleSuccess.jsp页面,并显示你输入的值和"Aggregate Total Marks:  "信息.

stringSuccess.jsp

<%@page language="java" %>
<html>

<head>
  <title>Correct entry</title>
</head>

<body>
<b>Aggregate Total Marks: </b><%=request.getParameter("percentagemarks") %>%
</body>

</html> 

输出 :

当程序执行时,你将看到如下 :

如果你输入错误的数据或文本你将得到 :

当你输入数字'26.105' :

  • 大小: 1.9 KB
  • 大小: 2.3 KB
  • 大小: 2.3 KB
  • 大小: 553 Bytes
评论 共 0 条 请登录后发表评论

发表评论

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

文章信息

Global site tag (gtag.js) - Google Analytics