- 浏览: 920811 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (453)
- Windows phone 7 (0)
- Andriod (47)
- iPhone (1)
- Web (30)
- J2EE (34)
- stucts 2学习笔记 (34)
- 开发项目 (3)
- spring学习笔记 (24)
- EJB学习笔记 (6)
- Hibernate学习笔记 (15)
- JPA学习笔记 (8)
- Jsp (11)
- ajax (7)
- 异常收集模块 (1)
- jquery (2)
- phoneGap (2)
- jquery Mobile (0)
- java面试总结 (5)
- Object-C (0)
- javascript (6)
- Eclipse (5)
- 支付集成 (2)
- Weblogic (1)
- Dubbox (5)
- Redis (10)
- linux (21)
- Codis (2)
- React Native (0)
- Mysql (6)
- Docker (3)
- 自动化部署 (1)
- 项目Bug管理平台 (2)
- 负载均衡 (1)
- Mycat (2)
- Java基础知识 (16)
- 数据库 (7)
- Maven (17)
- Kafka (21)
- logs (2)
- 大并发 (2)
- 消息中间件 (2)
- 分布式锁 (3)
- 算法 (4)
- 数字证书原理,公钥私钥 (0)
- 数字证书原理 (1)
- 公钥私钥 (1)
- zookeeper (4)
- Hbase (9)
- Hadoop (2)
- storm (2)
- 通信协议 (1)
- Hive (3)
- git (1)
- JVM (2)
- 大数据相关算法 (1)
- idea (5)
- 将博客搬至CSDN (1)
- 设计模式 (2)
- 表达式 (1)
- 代码审查工具 (0)
- 开源项目 (1)
- PyCharm (0)
- python (6)
- Kubernetes (1)
- swagger (1)
- Maven中mirrors和repository的关系 (0)
- RabbitMQ (3)
- redisson (1)
- k8s (2)
- Mac (1)
最新评论
-
misisipi101:
假设库已经分为32个,那么要扩展到64个,怎样做呢
订单分库分表实践总结以及关键步骤 -
mfkxk298:
简单明了的例子,解决了问题,谢谢啦!
关于ListView中notifyDataSetChanged()刷新数据不更新原因 -
whbwang:
" target="_blank" ...
java web开发 高并发处理 -
suguoqian:
...
java web开发 高并发处理 -
xiangnanyujing:
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
知识点:
通过重写validate() 方法实现, validate()方法会校验action中所有与execute方法签名相同的方法。当某个数据校验失败时,我们应该调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action可以继承ActionSupport ),如果系统的fieldErrors包含失败信息,struts2会将请求转发到名为input的result。在input视图中可以通过<s:fielderror/>显示失败信息。
validate()使用例子:
public void validate() {
if(this.mobile==null || "".equals(this.mobile.trim())){ this.addFieldError("username", "手机号不能为空");
}else{ if(!Pattern.compile("^1[358]\\d{9}").matcher(this.mobile.trim()).matches()){
this.addFieldError(“mobile", "手机号的格式不正确"); }
}
}
验证失败后,请求转发至input视图:
<result name="input">/WEB-INF/page/addUser.jsp</result>
在addUser.jsp页面中使用<s:fielderror/>显示失败信息。
注意Validate(){}会对这个Action中的所有方法进行验证。
照样看步骤:
第一步:新建类实现继承ActionSupport
public class HandValidates extends ActionSupport {
private String username;
private String 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;
}
public String update(){
ActionContext.getContext().put("message", "更新成功");
return "message";
}
public String save(){
ActionContext.getContext().put("message", "保存成功");
return "message";
}
@Override
public void validate(){
if(this.username==null || "".equals(this.username.trim())){
this.addFieldError("username", "用户名不能为空");
}
if(this.mobile==null || "".equals(this.mobile.trim())){
this.addFieldError("mobile", "手机号不能为空");
}else{
if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.mobile).matches()){
this.addFieldError("mobile", "手机号格式不正确");
}
}
}
}
第二步:配置stucts.xml文件
<action name="manage_*" class="com.liyong.HandValidates.HandValidates" method="{1}">
<!-- 下面的input视图是当存在验证错误或提交参数是类型转换出错 -->
<result name="input">/index.jsp</result>
<result name="message">/WEB-INF/page/message.jsp</result>
</action>
注意:上面的input视图是当验证出错或参数请求类型转换是出现异常都会自动转到input视图
第三步:编写input视图和message视图
index.jsp:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>输入校验</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<!-- 以下标签是用来输出错误信息 -->
<s:fielderror/>
<form action="${pageContext.request.contextPath}/person/manage_save.action" method="post">
用户名:<input type="text" name="username"/>不能为空<br/>
手机号:<input type="text" name="mobile"/>不能为空,并且要符合手机号的格式1,3/5/8,后面是9个数字<br/>
<input type="submit" value="提 交"/></form>
</body>
</html>
message.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>结果</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
${message}
</body>
</html>
第四步:部署
第五步:可以更改表单提交的action方法名可以知道对action中的所有方法进行验证
.....
通过重写validate() 方法实现, validate()方法会校验action中所有与execute方法签名相同的方法。当某个数据校验失败时,我们应该调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action可以继承ActionSupport ),如果系统的fieldErrors包含失败信息,struts2会将请求转发到名为input的result。在input视图中可以通过<s:fielderror/>显示失败信息。
validate()使用例子:
public void validate() {
if(this.mobile==null || "".equals(this.mobile.trim())){ this.addFieldError("username", "手机号不能为空");
}else{ if(!Pattern.compile("^1[358]\\d{9}").matcher(this.mobile.trim()).matches()){
this.addFieldError(“mobile", "手机号的格式不正确"); }
}
}
验证失败后,请求转发至input视图:
<result name="input">/WEB-INF/page/addUser.jsp</result>
在addUser.jsp页面中使用<s:fielderror/>显示失败信息。
注意Validate(){}会对这个Action中的所有方法进行验证。
照样看步骤:
第一步:新建类实现继承ActionSupport
public class HandValidates extends ActionSupport {
private String username;
private String 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;
}
public String update(){
ActionContext.getContext().put("message", "更新成功");
return "message";
}
public String save(){
ActionContext.getContext().put("message", "保存成功");
return "message";
}
@Override
public void validate(){
if(this.username==null || "".equals(this.username.trim())){
this.addFieldError("username", "用户名不能为空");
}
if(this.mobile==null || "".equals(this.mobile.trim())){
this.addFieldError("mobile", "手机号不能为空");
}else{
if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.mobile).matches()){
this.addFieldError("mobile", "手机号格式不正确");
}
}
}
}
第二步:配置stucts.xml文件
<action name="manage_*" class="com.liyong.HandValidates.HandValidates" method="{1}">
<!-- 下面的input视图是当存在验证错误或提交参数是类型转换出错 -->
<result name="input">/index.jsp</result>
<result name="message">/WEB-INF/page/message.jsp</result>
</action>
注意:上面的input视图是当验证出错或参数请求类型转换是出现异常都会自动转到input视图
第三步:编写input视图和message视图
index.jsp:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>输入校验</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<!-- 以下标签是用来输出错误信息 -->
<s:fielderror/>
<form action="${pageContext.request.contextPath}/person/manage_save.action" method="post">
用户名:<input type="text" name="username"/>不能为空<br/>
手机号:<input type="text" name="mobile"/>不能为空,并且要符合手机号的格式1,3/5/8,后面是9个数字<br/>
<input type="submit" value="提 交"/></form>
</body>
</html>
message.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>结果</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
${message}
</body>
</html>
第四步:部署
第五步:可以更改表单提交的action方法名可以知道对action中的所有方法进行验证
.....
发表评论
-
struts2的原理
2016-07-04 09:56 529众所周知,Struts2是个 ... -
重庆APP开发 重庆Android 重庆Ios 爬虫科技 重庆爬虫科技
2014-10-06 12:03 9<!--[if gte mso 9]><x ... -
国际化-配置全局资源与输出国际化信息及带占位符
2012-05-08 12:06 5200知识点: 【 <1、国际化: 准备资源文件,资源文件的 ... -
国际化-配置全局资源与输出国际化信息及带占位符
2012-05-04 15:38 0知识点: 【 <1、国际化: 准备资源文件,资源文件的 ... -
基于XML校验的一些特点
2012-05-08 12:05 899【 当为某个action提供了ActionClassName ... -
基于XML配置方式对指定action方法实现输入校验
2012-05-07 08:17 1154知识点: 【 当校验文件的取名为ActionClassNam ... -
基于XML配置方式实现对action的所有方法进行输入校验
2012-05-07 08:17 1295】 知识点: 】 使用基于XML配置方式实现输入校验时,Act ... -
输入校验的流程
2012-05-07 08:17 10181。类型转换器对请求参数执行类型转换,并把转换后的值赋给act ... -
手工编写代码实现对action指定方法输入校验
2012-05-07 08:17 1238知识点: 通过validateXxx()方法实现, vali ... -
自定义拦截器
2012-05-03 13:40 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-06 10:41 1043先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
多文件上传
2012-05-03 10:04 1381在stucts中多文件上传的 ...
相关推荐
19对Action中所有方法进行输入校验.zip
手工编写代码实现对action中所有方法输入校验 博文链接:https://wuzhaohuixy-qq-com.iteye.com/blog/710102
struts2对action中的所有方法进行校验
该文档详细描述了如何基于XML文档配置,实现对action里面的所有方法的校验。本人亲自总结。
22基于XML配置方式实现对action的所有方法进行校验.zip
23基于XML配置方式实现对指定action方法校验.zip
重写validate方法校验将会产生两种错误信息:Field级别错误信息,Action级别的错误信息 Field级别错误信息就是将错误信息添加到fieldErrors,也就是将错误信息添加到addFieldError方法中。 Action级别的错误信息...
20对action指定方法进行校验.zip
structs in action中文完全版\12. 用户输入校验.pdf
基于XML配置方式实现对指定action方法校验 配置国际化全局资源文件、输出国际化信息 输出带有占位符的国际化信息 配置包范围国际化资源文件 配置Action范围国际化资源文件 ognl表达式 Struts 2常用标签解说 ...
NULL 博文链接:https://llxhna.iteye.com/blog/1067851
具体要求是在loginAction类中分别用login()和registered()处理用户登录和注册的过程,分别创建login.jsp和register.jsp两个页面实现登录和注册的输入,这两个页面提交给loginAction中的两个方法进行业务处理,...
可以在具体的Action实现类里增加新的方法(这些方法都是无参和公有的,都有一个String的返回类型),然后在url上指定这次请求调用哪个方法 有源代码,有注释,配置文档也配置好了
struts 2 基础 __继承ActionSupport完成输入校验
在实际的开发项目中,我们通常采用的是js对我们输入的值进行验证,例如,用户名的长度,密码长度,等等。但是这样做,不好之处就是我们可以...本附件为【Struts2】★☆之struts2对Action提交方法进行验证,下载源码!
这个一个简单的输入校验工程,通过 struts 的 校验文件 ActionName-validation.xml 文件 和 扩展的 校验类 CheckStringLength 进行字符串长度校验。工程使用 MyEclipse 8.5 编译,可以正常运行。
ajax实现输入提示(类似百度和Google的输入提示) 用法非常简单: 1、在jsp页面引入autosuggest.js文件 2、建一个text文本框 3、写js代码: <script> new actb("tb", loadAllMessage("suggest" , ""), null); 4、这...
Struts中action技术实现对数据的增删改查,有完整的JSP和action代码,不过数据库需要自己在MySQL创建对应表
Machine Learning in action一书中代码实现包括常用的KNN,Bayes,logistics,决策树,SVM等
利用struts_1编写代码实现简单登录功能,学了Struts之后,是在action中编写请求处理代码,为什么这样做呢?因为Struts作者帮我们写好了一个actionServlet,他写这个servlet的目的是希望所有请求都交给它预处理,它...