Struts2 对Action中所有方法进行输入校验、单个方法进行校验
index.jsp:
<body>
<s:fielderror />
<form action="${pageContext.request.contextPath }/cn/person_add.do" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input name="userName" type="text" value="${userName }" /></td>
</tr>
<tr>
<td>手机号:</td>
<td><input name="phone" type="text" value="${phone }" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="登录" /></td>
</tr>
</table>
</form>
</body>
action:
public class PersonAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String userName;
private String phone;
private String message;
public String add(){
message="添加成功";
return "message";
}
public String update(){
message="更新成功";
return "message";
}
@Override
public void validate() {
if(userName==null || userName.trim().equals("")){
// 当校验失败时,通过addFieldError为字段添加校验失败信息
// 在页面中通过 <s:fielderror /> 显示失败信息
// 当校验失败以后,Struts会默认调用一个名为input的result所以需要在Struts的Action里面配置input
addFieldError("userName", "用户名不能为空");
}
if(phone==null || phone.trim().equals("")){
addFieldError("phone", "手机号不能为空");
}else{
if(!Pattern.compile("^1[358]\\d{9}$").matcher(phone).matches()){
addFieldError("phone", "手机号格式不正确");
}
}
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
struts.xml
<struts>
<constant name="struts.118n.encoding" value="UTF-8"></constant>
<constant name="struts.action.extension" value="do"></constant>
<package name="mainPackage" namespace="/cn" extends="struts-default">
<global-results>
<result name="message">/WEB-INF/message.jsp</result>
</global-results>
<action name="person_*" class="cn.person.PersonAction" method="{1}" >
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
验证:
对单个方法进行校验
对单个方法进行校验更简单,只需要将重 写的ActionSupport的validate 改成 validateXxxx()即可,即validate+要校验的方法名称(首字母大写)例:
public void validateUpdate() {
if(userName==null || userName.trim().equals("")){
// 当校验失败时,通过addFieldError为字段添加校验失败信息
// 在页面中通过 <s:fielderror /> 显示失败信息
// 当校验失败以后,Struts会默认调用一个名为input的result所以需要在Struts的Action里面配置input
addFieldError("userName", "用户名不能为空");
}
if(phone==null || phone.trim().equals("")){
addFieldError("phone", "手机号不能为空");
}else{
if(!Pattern.compile("^1[358]\\d{9}$").matcher(phone).matches()){
addFieldError("phone", "手机号格式不正确");
}
}
}
Struts2 对Action中所有方法进行输入校验、单个方法进行校验的更多相关文章
- 在Struts2的Action中获得request response session几种方法
转载自~ 在Struts2中,从Action中取得request,session的对象进行应用是开发中的必需步骤,那么如何从Action中取得这些对象呢?Struts2为我们提供了四种方式.分别为se ...
- Struts2 的Action中取得请求参数值的几种方法
先看GetRequestParameterAction类代码: Java代码 public class GetRequestParameterAction extends ActionSupport ...
- 在Struts2的Action中取得请求参数值的几种方法
先看GetRequestParameterAction类代码: public class GetRequestParameterAction extends ActionSupport { priva ...
- JavaWeb_(Struts2框架)Action中struts-default下result的各种转发类型
此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...
- 在struts2的action中操作域对象(request、session)
在struts2的Action中,操作域对象一共有三种方式: 1.ActionContext(与servelt API无关联): //相当于request ActionContext.getConte ...
- struts2对action中的方法进行输入校验---xml配置方式(3)
上面两篇文章已经介绍了通过编码java代码的方式实现action方法校验,这里我们介绍第二种方式:xml配置文件 首先我们来看一个样例: ValidateAction.java: package co ...
- struts2对action中的方法进行输入校验(2)
struts2输入校验流程: 1.类型转换器对请求參数运行类型转换,并把转换后的值赋给aciton中的属性 2.假设在运行类型转换的过程中出现异常,系统会将异常信息保存到ActionContext, ...
- 理解Struts2的Action中的setter方法是怎么工作的
接触过webwork和Struts2的同行都应该知道, 提交表单的时候,只要Action中的属性有setter 方法,这些表单数据就可以正确赋值到Action中属性里:另外对于Spring配置文件中声 ...
- 【JAVA学习】struts2的action中使用session的方法
尊重版权:http://hi.baidu.com/dillisbest/item/0bdc35c0b477b853ad00efac 在Struts2里,假设须要在Action中使用session.能够 ...
随机推荐
- C/S与B/S
C/S架构简要介绍 在了解什么是B/S架构之前,我们有必要了解一下什么是C/S架构: C/S架构是第一种比较早的软件架构,主要用于局域网内.也叫 客户机/服务器模式. 它可以分为客户机和服务器两层:第 ...
- 在WPF中自定义你的绘制(四)
原文:在WPF中自定义你的绘制(四) 在WPF中自定义你的绘制(四) ...
- 在android画面切换时设置跟随变动的小圆圈
首先还是老规律,上传两张效果图: 第一张图: 第二张图: 前言:我们经常在使用各类安卓APP的时候发现会有如图所示的小圆圈显示当前页所在的,甚至一般来说我们的android桌面上也应该有 ...
- 14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用
14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用 LOCK TABLES 和UNLOCK TABLES 交互实用事务如 ...
- tls和ssl
一个存在于 SSL 3.0 协议中的新漏洞于被披露,通过此漏洞,第三方可以拦截通过采用 SSL 3.0 的服务器传输的重要信息. 问题出在哪里? 与此问题相关的不是 SSL 证书本身,而是进行加密处理 ...
- Zepto,Zepto API 中文版,Zepto 中文手册,Zepto API,Zepto API 中文版,Zepto 中文手册,Zepto API 1.0, Zepto API 1.0 中文版,Zepto 1.0 中文手册,Zepto 1.0 API-translate by yaotaiyang
Zepto,Zepto API 中文版,Zepto 中文手册,Zepto API,Zepto API 中文版,Zepto 中文手册,Zepto API 1.0, Zepto API 1.0 中文版,Z ...
- pushMeBaby,github链接
https://github.com/stefanhafeneger/PushMeBaby
- Python学习入门基础教程(learning Python)--8.1 字典数据添加与删除
1. 字典数据添加 这个很简单,像赋值那样一项项赋值即可.语法结构如下 dict_obj[key] = value 添加数据项示例如下 >>> d1 = {'cod ...
- 【剑指offer】连续子数组的最大和
个開始,到第3个为止).你会不会被他忽悠住? 输入: 输入有多组数据,每组測试数据包括两行. 第一行为一个整数n(0<=n<=100000),当n=0时,输入结束.接下去的一行包括n个整数 ...
- android之存储篇_存储方式总览
作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File. ...