您的位置:首页 > 编程语言

学习笔记------------------对Action中所有方法进行输入校验和对指定方法输入校验(手工编写代码和xml方式)

2011-02-26 22:08 871 查看
一.所有方法进行输入校验,手工编写代码

1.index.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>输入校验</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>

<body>
<s:fielderror/>
<form action="${pageContext.request.contextPath}/person/manage_update.action" method="post">
用户名:<input type="text" name="username"/>不能为空<br/>
手机号:<input type="text" name="mobile"/>不能为空,并且要符合手机号的格式1,3/5/8,后面是9个数字<br/>
<input type="submit" value="提 交"/></form>
</body>
</html>


2.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>
<package name="person" namespace="/person" extends="struts-default">
<action name="manage_*" class="cn.itcast.action.PersonAction" method="{1}">
<result name="input">/index.jsp</result>
<result name="message">/WEB-INF/page/message.jsp</result>
</action>
</package>
</struts>


3.message.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>结果</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>

<body>
${message }
</body>
</html>


4.PersonAction.java 需继承ActionSupport重写相应方法



package cn.itcast.action;
import java.util.regex.Pattern;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class PersonAction extends ActionSupport{
private String username;
private String mobile;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}

public String update(){
ActionContext.getContext().put("message", "更新成功");
return "message";
}

public String save(){
ActionContext.getContext().put("message", "保存成功");
return "message";
}

@Override
public void validate() {//会对action中的所有方法校验
if(this.username==null || "".equals(this.username.trim())){
this.addFieldError("username", "用户名不能为空");
}
if(this.mobile==null || "".equals(this.mobile.trim())){
this.addFieldError("mobile", "手机号不能为空");
}else{
if(!Pattern.compile("^1[358]//d{9}$").matcher(this.mobile).matches()){
this.addFieldError("mobile", "手机号格式不正确");
}
}
}

}


出现错误便会找到input视图,通过struts2标签输出错误信息。

二.对action指定方法进行校验,手动验证

1.



2.PersonAction.java 只需在原来基础上修改这个action即可,

package cn.itcast.action;
import java.util.regex.Pattern;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class PersonAction extends ActionSupport{
private String username;
private String mobile;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}

public String update(){
ActionContext.getContext().put("message", "更新成功");
return "message";
}

public String save(){
ActionContext.getContext().put("message", "保存成功");
return "message";
}

public void validateUpdate() {//会对update()方法校验
if(this.username==null || "".equals(this.username.trim())){
this.addFieldError("username", "用户名不能为空");
}
if(this.mobile==null || "".equals(this.mobile.trim())){
this.addFieldError("mobile", "手机号不能为空");
}else{
if(!Pattern.compile("^1[358]//d{9}$").matcher(this.mobile).matches()){
this.addFieldError("mobile", "手机号格式不正确");
}
}
}

}


三.基于XML配置方式实现对action的所有方法进行校验

1.



2.PersonAction.java

package cn.itcast.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class PersonAction extends ActionSupport{
private String username;
private String mobile;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}

public String update(){
ActionContext.getContext().put("message", "更新成功");
return "message";
}

public String save(){
ActionContext.getContext().put("message", "保存成功");
return "message";
}
}


3.PersonAction-validation.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空!</message>
</field-validator>
</field>
<field name="mobile">
<field-validator type="requiredstring">
<message>手机号不能为空!</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><!--[CDATA[^1[358]/d{9}$]]--></param>
<message>手机号格式不正确!</message>
</field-validator>
</field>
</validators>


4.校验器,也就是 <field-validator type="requiredstring">

<message>手机号不能为空!</message>

</field-validator>中的type



5.补充



6.补充



四.基于XML配置方式实现对指定action方法校验

1.



2.PersonAction-manage_update-validation.xml,这个取名字很重要,尤其是中间部分manage_update,是和<action name="manage_update"对应的

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空!</message>
</field-validator>
</field>
<field name="mobile">
<field-validator type="requiredstring">
<message>手机号不能为空!</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><!--[CDATA[^1[358]/d{9}$]]--></param>
<message>手机号格式不正确!</message>
</field-validator>
</field>
</validators>


3.补充



4.校验文件xml和相应的需要校验的action在同目录下。

代码链接http://putaoputao.qupan.cc/7004542.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐