手工编写代码实现对action中所有方法的输入校验
通过重写validate()方法实现,validate()方法会校验action中所有与execute方法签名相同的方法。当某个数据校验失败时,我们应该调用addFiledError()方法往系统的filedErrors添加校验失败信息(为了使用addFiled()方法,action可以继承ActionSupport),如果系统的filedErrors包含失败信息,struts2会将请求转发到名为input的result。在input视图中可以通过<s:filederror/>显示失败信息。
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
<body>
<s:fielderror></s:fielderror>
<form action="${pageContext.request.contextPath}/person/personAction_save.action" method="post">
姓名:<input type="text" name="username"><br>
手机号:<input type="text" name="mobile"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
其中:<s:fielderror></s:fielderror>显示错误的提示信息
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="person" namespace="/person" extends="struts-default">
<action name="personAction_*" class="com.siln.action.PersonAction"
method="{1}">
<result name="input">/index.jsp</result>
<result>/WEB-INF/page/message.jsp</result>
</action>
</package>
</struts>
package com.siln.action;
import java.util.regex.Pattern;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class PersonAction extends ActionSupport{
private String username;
private String mobile;
public String update() {
ActionContext.getContext().put("message", "更新成功");
return "success";
}
public String save() {
ActionContext.getContext().put("message", "保存成功");
return "success";
}
@Override
public void validate() {//对action中的所有方法进行校验
if(this.username == null || "".equals(this.username)) {
this.addFieldError("username", "用户名不能为空");
}
if(this.mobile == null || "".equals(this.mobile)) {
this.addFieldError("mobile", "手机号不能为空");
}else {
if(!Pattern.compile("^1[358]\\d{9}").matcher(this.mobile).matches()) {
this.addFieldError("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;
}
}
手工编写代码实现对action中指定方法的输入校验
通过validateXxx()方法实现,validateXxx()只会校验action中方法名为xxx的方法。其中Xxx的第一个字符大写。当某个数据校验失败时,我们应该调用addFiledError()方法往系统的filedErrors添加校验失败信息(为了使用addFiled()方法,action可以继承ActionSupport),如果系统的filedErrors包含失败信息,struts2会将请求转发到名为input的result。在input视图中可以通过<s:filederror/>显示失败信息。
package com.siln.action;
import java.util.regex.Pattern;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class PersonAction extends ActionSupport{
private String username;
private String mobile;
public String update() {
ActionContext.getContext().put("message", "更新成功");
return "success";
}
public String save() {
ActionContext.getContext().put("message", "保存成功");
return "success";
}
public void validateSave() { //对action中save()进行校验
if(this.username == null || "".equals(this.username)) {
this.addFieldError("username", "用户名不能为空");
}
if(this.mobile == null || "".equals(this.mobile)) {
this.addFieldError("mobile", "手机号不能为空");
}else {
if(!Pattern.compile("^1[358]\\d{9}").matcher(this.mobile).matches()) {
this.addFieldError("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;
}
}
分享到:
相关推荐
struts2对action中的所有方法进行校验
Struts2输入校验总结 Struts2输入校验
struts2输入校验 对指定方法进行输入校验
使用struts2进行输入校验入门 (附图)
struts2的输入校验有两种方式: 一.重写validate()方式 二.采用配置文件的方式 先我们就以一个简单的登录的例子来讲解这个吧. 重点讲解下,第二个采用配置文件的方式: 1.添加一个xml的校验文件,保存在...
Struts2输入校验,Struts2提供了功能强大的输入校验机制,通过Struts2内建的输入校验器,应用无需书写任何代码,即可完成大部分的校验功能,并可以同时完成客户端和服务器端的校验。
熟悉和掌握Struts2内建校验的操作方法 实验环境与设备: 已经接入局域网的网络实验室,机器上装有IE浏览器等; strtus2.5.8 实验内容: (1) 编写一个自定义类型转换器,并基于应用程序进行全局...
在实际的开发项目中,我们通常采用的是js对我们输入的值进行验证,例如,用户名的长度,密码长度,等等。但是这样做,不好之处就是我们可以...本附件为【Struts2】★☆之struts2对Action提交方法进行验证,下载源码!
struts2输入校验总结,struts2自带的校验器,以及校验器不能做的check的处理的总结
19对Action中所有方法进行输入校验.zip
Struts 2 输入校验
要求使用Struts2的内建校验器校验“书名”、“作者”、“出版日期”、“价格”和“库存数量”字段;要求手动编写代码校验“书号”的有效性;要求手动编写代码校验“出版社”字段中是否包含了“出版社”三个字。
重写validate方法校验将会产生两种错误信息:Field级别错误信息,Action级别的错误信息 Field级别错误信息就是将错误信息添加到fieldErrors,也就是将错误信息添加到addFieldError方法中。 Action级别的错误信息...
本人写的struts2 输入校验的小程序,希望大家踊跃下载。 本人写的struts2 输入校验的小程序,希望大家踊跃下载。 本人写的struts2 输入校验的小程序,希望大家踊跃下载。
基于Struts2框架的用户输入校验的完整讲解!是我的原创! 非常感谢大家提出宝贵意见
struts2学习测试代码,struts2学习测试代码2struts2学习测试代码,struts2学习测试代码