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.能够 ...
随机推荐
- COB對PCB設計的要求
由於COB沒有IC封裝的leadframe(導線架),而是用PCB來取代,所以PCB的焊墊設計就便得非常的重要,而且Fihish只能使用電鍍金或是ENIG(化鎳浸金),否則金線或是鋁線,甚至是最新的銅 ...
- Handler机制原理图、源码、使用!!!!!
android的消息处理机制——Looper,Handler,Message (原理图.源码) 转自:http://my.oschina.net/u/1391648/blog/282892 在开始讨 ...
- JOSM学习下载地址
JOSM is an extensible editor for OpenStreetMap (OSM) written in Java 7. Currently it supports load ...
- 【LeetCode练习题】Candy
分糖果 There are N children standing in a line. Each child is assigned a rating value. You are giving c ...
- 【泛化物品】【HDU1712】【ACboy needs your help】
ACboy needs your help Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- CSS中为什么overflow:hidden能清除浮动(float)的影响?原理是什么?
http://www.zhihu.com/question/30938856 父块没有设置指定的高宽,当子块设置为浮动后,原本包裹子块的父块的高度塌陷消失,这时给父块设置overflow:hidden ...
- asp.net mvc ajax提交例子
@{ Layout = null; } <script src="../../Scripts/jquery-1.10.2.min.js" type="text/ja ...
- asp.net mvc表单提交的几种方式
asp.net MVC中form提交和控制器接受form提交过来的数据 MVC中form提交和在控制器中怎样接受 1.cshtml页面form提交2.控制器处理表单提交数据4种方式方法1:使用传统的R ...
- Notification在不同版本SDK中的使用
今天总结了一下Notification的使用,发现这个控件在版本上有点扯淡.API11和API16两个分水岭,导致菜鸟在学习的时候比较吃力,受影响的外界因素是多样的,其中比较重要的就是你测试的andr ...
- Oracle数据库按属性成绩查询
create or replace function bb return nvarchar2as-----------自定义游标类型type class_student is record( snam ...