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中所有方法进行输入校验、单个方法进行校验的更多相关文章

  1. 在Struts2的Action中获得request response session几种方法

    转载自~ 在Struts2中,从Action中取得request,session的对象进行应用是开发中的必需步骤,那么如何从Action中取得这些对象呢?Struts2为我们提供了四种方式.分别为se ...

  2. Struts2 的Action中取得请求参数值的几种方法

    先看GetRequestParameterAction类代码:  Java代码 public class GetRequestParameterAction extends ActionSupport ...

  3. 在Struts2的Action中取得请求参数值的几种方法

    先看GetRequestParameterAction类代码: public class GetRequestParameterAction extends ActionSupport { priva ...

  4. JavaWeb_(Struts2框架)Action中struts-default下result的各种转发类型

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  5. 在struts2的action中操作域对象(request、session)

    在struts2的Action中,操作域对象一共有三种方式: 1.ActionContext(与servelt API无关联): //相当于request ActionContext.getConte ...

  6. struts2对action中的方法进行输入校验---xml配置方式(3)

    上面两篇文章已经介绍了通过编码java代码的方式实现action方法校验,这里我们介绍第二种方式:xml配置文件 首先我们来看一个样例: ValidateAction.java: package co ...

  7. struts2对action中的方法进行输入校验(2)

    struts2输入校验流程: 1.类型转换器对请求參数运行类型转换,并把转换后的值赋给aciton中的属性 2.假设在运行类型转换的过程中出现异常,系统会将异常信息保存到ActionContext, ...

  8. 理解Struts2的Action中的setter方法是怎么工作的

    接触过webwork和Struts2的同行都应该知道, 提交表单的时候,只要Action中的属性有setter 方法,这些表单数据就可以正确赋值到Action中属性里:另外对于Spring配置文件中声 ...

  9. 【JAVA学习】struts2的action中使用session的方法

    尊重版权:http://hi.baidu.com/dillisbest/item/0bdc35c0b477b853ad00efac 在Struts2里,假设须要在Action中使用session.能够 ...

随机推荐

  1. Delphi在Webbrowser上绘制图像

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  2. tcpdump 抓包让wireshark来分析

    在linux下面用tcpdump 抓包非常方便, 但是抓的包要提取出来进行分析, 还是得用wireshark来过滤分析比较方便. 下面先介绍一下 TCPDUMP 的使用 例:tcpdump host ...

  3. ASP.NET MVC4(Razor)从客户端中检测到有潜在危险的 Request.Form 值

    SP.NET MVC4(Razor)从客户端中检测到有潜在危险的 Request.Form 值 “/”应用程序中的服务器错误. 从客户端(Content=" sdfdddd ..." ...

  4. linux命令之pwd(print working drectory)

    Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...

  5. ID3决策树算法原理及C++实现(其中代码转自别人的博客)

    分类是数据挖掘中十分重要的组成部分.分类作为一种无监督学习方式被广泛的使用. 之前关于"数据挖掘中十大经典算法"中,基于ID3核心思想的分类算法C4.5榜上有名.所以不难看出ID3 ...

  6. 云脉表格识别开放SDK接入

    通过深度的引擎识别和文本处理技术给予表单提供了无与伦比的文档分析和数据的提取功能,云脉表单识别包含了先进的模板学习和文本.图像分析提取技术,通过模板元素定义表单,将整个南表单生命周期和生产数据以自动化 ...

  7. ASP.NET 委托,异步调用例子 .

    简要介绍:1.定义异步执行需要调用的方法2.定义具有与异步执行方法相同签名的委托(Delegate):3.调用 BeginInvoke 和 EndInvoke 方法.   3.1. BeginInvo ...

  8. 【概率论】【POJ 3682】【King Arthur's Birthday Celebration】

    题意:进行翻硬币实验,若k次向上则结束,进行第n次实验需花费2*n-1的费用,询问期望结束次数及期望结束费用 设F[i]为第i次结束时的概率 F[i]=  c(i-1,k-1)*p^k*(1-p)^( ...

  9. mysql jdbc 查询连接问题

    做了一个测试,mysql jdbc 链接A调用setAutoCommit,设置false,查询指定数据,可以查询出来,另个一链接把指定的数据给删除了,第一个链接在此查询的时候,仍然可以查询出来,使用的 ...

  10. jquery选择器从认识到使用初级篇

    1.   .class 选择器 ---一种通过元素类别属性查找元素 调用格式: $(".class") ----其中参数表示元素的css类别名称(类选择器)<input cl ...