struts2校验

来源:互联网 发布:转换pdf格式的软件 编辑:程序博客网 时间:2024/05/16 05:41

ValidateAction.java

package action;import java.util.Date;import java.util.List;import java.util.Map;import java.util.regex.Pattern;import com.opensymphony.xwork2.ActionSupport;public class ValidateAction extends ActionSupport {private String name;private String pass;private int age;private Date birth;@Overridepublic String execute() throws Exception {return SUCCESS;}public String add(){return SUCCESS;}/* * 手工编写代码实现对action指定方法输入校验 * public void validate(){System.out.println(""); if(!name.contains("csdn")){ addFieldError("name","用户名必须包含csdn"); }}public void validateAdd(){ if(name==null||name.trim().equals("")){ addFieldError("name","用户名不能爲空"); }else{ if(name.length()<4||name.length()>10){ addFieldError("name","用戶名必須是4到10爲"); } } if(age==0){ addFieldError("age","年齡必須不爲0"); } else  if(!Pattern.compile("^([0-9]|[0-9]{2}|100)$").matcher(String.valueOf(age)).matches()){ addFieldError("age","年齡必須爲1-100"); }}*/public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPass() {return pass;}public void setPass(String pass) {this.pass = pass;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}}

ValidateAction-login-validation.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"><validators><!-- 基于XML配置方式对指定action方法实现输入校验 --><field name="name"><field-validator type="requiredstring"  short-circuit="true"><!-- 短路效验器——优先判断 --><param name="trim">true</param> <!-- <message>用户名不能为空!</message>  --> <message key="name.requried"></message><!-- 國際化標籤 --></field-validator><field-validator type="stringlength"><param name="maxLength">10</param><param name="minLength">2</param><param name="trim">true</param><!-- <message><![CDATA[用戶名應在2-10字符之間]]></message> --><message  key="name.quesrs"></message></field-validator></field><field name="pass"><field-validator type="requiredstring"><param name="trim">true</param><message>必须输入密码!</message></field-validator><field-validator type="stringlength"><param name="maxLength">10</param><param name="minLength">2</param><param name="trim">true</param><message><![CDATA[密碼應在2-10字符之間]]></message></field-validator><!-- <field-validator type="regex"> <param name="expression"><![CDATA[\w{4-25}]]></param> <message>密码之梦4-25!!!</message> </field-validator> --></field><field name="age"><field-validator type="int"><param name="min">1</param><param name="max">100</param><message>年齡必須是1-100</message></field-validator></field><field name="birth"><field-validator type="date"><param name="min">1900-01-01</param><param name="max">2014-01-01</param><message>生日必须在${min}到${max}之间</message></field-validator></field></validators>

使用国际化标签mess.properties


struts.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>   <constant name="struts.custom.i18n.resources" value="mess"></constant><package name="hello" namespace="/hello" extends="struts-default"><action name="login" class="action.ValidateAction"  method="add"><result name="success">/index.jsp</result><result  name="input">/login.jsp</result></action></package></struts>

login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib  prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'post.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><!-- struts2标签<s:form action="login"  namespace="/hello"  method="post"   validate="true"></s:form> --><s:form action="/hello/login" method="post"><s:textfield name="name" label="用户名" /><s:textfield name="pass" label="密码" /><s:textfield name="age" label="年龄" /><s:textfield name="birth" label="生日" /><s:submit value="提交" /></s:form></body></html>

index.jsp    

<s:property  value="name"/>


0 0