struts2校验

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;	
	
	
	@Override
	public 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值