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.能够 ...
随机推荐
- linux function
#!/bin/bash function sayHello() { #这里的{ 和它前面的)之间可以没有空格 echo "Hello $1" } sayHello 'Neeky'
- Android 样式
先在Value文件夹下建一个Common.xml的文件. <style name="CodeFont" parent="@android:style/TextApp ...
- 学习笔记之--MySQL图形界面软件Navicat Premium的安装
最近因项目开发需要,搁置已久的MySQL再次用到.由于以前都是使用命令行进行操作的,没有图形界面.经同学介绍,安装了一个MySQL的图形界面软件.各种数据库的操作也变得直观方便了很多.现在记录下来,一 ...
- 2.6. Statistical Models, Supervised Learning and Function Approximation
Statical model regression $y_i=f_{\theta}(x_i)+\epsilon_i,E(\epsilon)=0$ 1.$\epsilon\sim N(0,\sigma^ ...
- poj 1940 Wine Trading in Gergovia_贪心
在一条街上有许多房屋,每间屋子里都住着人,并且都是做葡萄酒生意的商人,他们每天都要决定买卖多少瓶葡萄酒.有趣的地方是,供需总是完美地一致.商人总是能买到自己需要的葡萄酒,并且,他们从来不介意是从哪个商 ...
- spring mvc <mvc:annotation-driven>配置使用出现故障
我在使用converter进行全局的日期类型转换. 1.写converer public class CustomDateConverter implements Converter<Strin ...
- 如何一步步把网站Retina优化
随着高清屏幕.高分辨率屏幕越来越流行,例如MacBook Retina机型.iPad Air系列,这些新生机器有着很高的PPI,对网页的清晰度要求很高,所以越来越多的站长都不得不面临一个问题,那就是把 ...
- vsts
首先要搞清楚啥是VSTS,这对于我们安装配置有基础作用.看看这张组织结构图就一目了然了.Visual Studio Team Suite就是我们常说的VS.NET 2005开发环境,安装包3G左右的 ...
- Gradle中文乱码
代码中的中文注释可能会引起Gradle报错 解决办法: 在项目下的build.gradle下添加以下代码即可解决 [java] view plaincopyprint? tasks.withType( ...
- HTML网页制作:[12]使用框架结构之frameset
首先,我希望在你的目录下,有4个网页,各自显示不同的内容. 如图所示: 1.html显示“火影忍者” 2.html显示“英雄联盟” 3.html显示“嵌入式开发.网页开发.安卓开发” 4.html显示 ...