博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts 验证 Struts2 表单 
阅读量:4052 次
发布时间:2019-05-25

本文共 5659 字,大约阅读时间需要 18 分钟。

Struts 验证 Struts2 表单   

(1)配置文件Struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "">
<struts>
    <package name="com" namespace="/" extends="struts-default">
        <action name="User" class="com.lyh.struts2.User">
            <result name="success">/result.jsp</result>
            <result name="input">/index.jsp</result>
        </action>
    </package>
</struts>
(2)User Action类
package com.lyh.struts2;
import com.opensymphony.xwork2.ActionSupport;
import java.util.*;
public class User extends ActionSupport {
    private String userName;   //用户名
    private String password;    //密码
    private String name;        //名字
    private String sex;          //性别
    private int age;             //年龄
    private Date birthday;       //生日
    private String email;        //电邮
    private String mainPage;     //个人主页
    private String country;      //所在国家
    private String description; //描述
    private List<String> sports = new ArrayList<String>(); //喜欢的运动
    public String execute() throws Exception {
        System.out.println("Age=" + getAge());
        System.out.println("Birthday" + birthday);
        sports = getSports();
        for (String sport : sports) {
            System.out.println(sport);
        }
        if ((sex == null) || sex.equals("")) {
            addFieldError("sex", "sex is not null");
            return INPUT;
        }
        return SUCCESS;
}
―――get/set方法
}
(3)验证规则文件User-validation.xml
<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
        "">

<validators>

    <field name="userName">
        <field-validator type="requiredstring">
            <message key="requiredstring"/>
        </field-validator>
        <field-validator type="stringlength">
            <param name="fieldName">userName</param>
            <param name="minLength">6</param>
            <param name="maxLength">10</param>
            <param name="trim">true</param>
            <message key="stringlengthmessage"/>
        </field-validator>
        <field-validator type="regex">
            <param name="fieldName">userName</param>
            <param name="expression">[A-Za-z0-9]+</param>
            <message key="regexmessage"/>
        </field-validator>
    </field>
    <field name="name">
        <field-validator type="requiredstring">
            <message key="requiredstring"/>
        </field-validator>
        <field-validator type="regex">
            <param name="fieldName">name</param>
            <param name="expression">[a-zA-Z]+</param>
            <message key="nameregexmessage"/>
        </field-validator>
    </field>
    <field name="age">
        <field-validator type="int">
            <param name="min">1</param>
            <param name="max">120</param>
            <message key="agemessage"/>
        </field-validator>
    </field>
    <field name="email">
        <field-validator type="email">
            <param name="fieldName">email</param>
            <message key="emailmessage"/>
        </field-validator>
    </field>
    <validator type="url">
        <param name="fieldName">mainPage</param>
        <message key="mainpagemessage"/>
    </validator>
    <field name="birthday">
        <field-validator type="date">
            <param name="min">1980-01-01</param>
            <param name="max">2007-07-29</param>
            <message key="birthdaymessage"/>
        </field-validator>
    </field>
</validators>
(4)package.properties属性文件
requiredstring=This field is required!
stringlengthmessage=userName must be between ${minLength}and${maxLength} needs to

be 6-8 characters long !

regexmessage=The userName must be character and number!
nameregexmessage=name must be all character!
agemessage=Age must be in range ${min} and ${max}
emailmessage=Must provide a valid email!
mainpagemessage=Invalid homepage url
birthdaymessage=Birthday must be within ${min} and ${max}
(5)index.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <title>Struts2 Validation Application!</title>
        <s:head theme="ajax" />
    </head>
    <body>
        This is a Validate Application!
    <hr>
    <s:fielderror />
    <s:form action="User.action" method="POST">
    <s:textfield key="userName" label="UserName" />
    <br>
    <s:password key="password" label="Password" />
    <s:textfield key="name" label="Name" />
    <s:radio label="Sex" list="{'Male','Female'}" key="sex" />
    <s:textfield label="Age" key="age" value="18" />
    <s:checkboxlist list="{'football','basketball','pingpang'}"
                label="Sports" key="sports" />
    <s:textfield label="Email" key="email" value="" />
    <s:textfield label="Main Page" key="mainPage" value="http://" />
    <s:datetimepicker key="birthday" label="Birthday" toggleType="explode"

toggleDuration="500" value="2007-08-29" />

    <s:select list="{'China','American','Japenese'}"            label="Select

Country" headerKey="1" headerValue="-- Please Select --" key="country" />

    <s:textarea key="description" label="Description" rows="8" cols="20" />
    <s:submit />
    <s:reset
                form now... Press OK to continue!');" />
        </s:form>
        <hr>
        This Example from
<a href=">
    </body>
</html>
(6)result.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>
        Simple jsp page
    </title>
</head>
<body>
<center><h7><b>This is Result!</b></h7></center>
<br>
<center>
    userName:<s:property value="userName"/> <br>
    Password:<s:property value="password"/> <br>
    Sex:<s:property value="sex"/> <br>
    Name:<s:property value="name"/> <br>
    Age:<s:property value="age"/> <br>
    Sports:<s:property value="sports"/> <br>
    Birthday:<s:property value="birthday"/> <br>
    Country:<s:property value="country"/> <br>
    Email:<s:property value="email"/> <br>
    MainPage:<s:property value="mainPage"/> <br>
    Description:<s:property value="description"/> <br>
</center>
</body>
</html>
(7)web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns=""
         xmlns:xsi=""
         xsi:schemaLocation="
        "
         version="2.5">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-

class>

    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
 
 

转载地址:http://ohici.baihongyu.com/

你可能感兴趣的文章
Homebrew指令集
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>
React Native(二):属性、状态
查看>>
JSX使用总结
查看>>
React Native(四):布局(使用Flexbox)
查看>>
React Native(七):Android双击Back键退出应用
查看>>
Android自定义apk名称、版本号自增
查看>>
adb command not found
查看>>
Xcode 启动页面禁用和显示
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Clone Graph(python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>
【leetcode】Pascal's Triangle II (python)
查看>>
java自定义容器排序的两种方法
查看>>
如何成为编程高手
查看>>