- 浏览: 136647 次
- 性别:
- 来自: 无锡
文章分类
最新评论
-
yh443042575:
楼主造福社会呀,顶顶顶!!!
jfreechart学习笔记三 带刻度的蜘蛛图 -
twtja1:
最后一句"如果需要在父类中仍然要使用类型字段,需要在 ...
hibernate继承之一,单表继承映射 -
qq361837213:
更换新版dwr的jar包就行了,新版本解决了这个问题
dwr文件上传在chrome下的问题及解决方法 -
无象心:
无象心 写道改为这样就可以了
loadingComple ...
dwr文件上传在chrome下的问题及解决方法 -
无象心:
loadingComplete:function(ba ...
dwr文件上传在chrome下的问题及解决方法
最近使用了一下struts2的验证框架,感觉不错。但其中也发现了一些技巧和问题,先总结如下。
1、建立一个实体类,主要是对因为登陆而设置的这个验证框架,所以首先创建一个用户实体类
import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; /* * * 用户 * */ @Entity @Table(name = "user_tbl") public class UserEntity extends BaseEntity { /** * */ private static final long serialVersionUID = 1L; /** * 用户名 */ private String name; /** * 用户密码 */ private String password; @Column(name = "name", length = 255, nullable = false) public String getName() { return name; } public void setName(String name) { this.name = name; } @Column(name = "password", length = 255, nullable = false) public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
2、创建登陆的Action类
import com.opensymphony.xwork2.ActionSupport; import com.zaotao.entity.UserEntity; import com.zaotao.service.manage.IAdminService; /** * 管理员的普通action * @author 管理员 * */ public class AdminAction extends ActionSupport { /** * */ private static final long serialVersionUID = 1L; /** * 用户实体 */ private UserEntity user; /** * 验证码 */ private String code; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public UserEntity getUser() { return user; } public void setUser(UserEntity user) { this.user = user; } /** * 登录 * @return 登录成功 */ public String loginAdmin() { return "success"; } }
3、由于struts2的查找机制(这个可以参考相关资料),我们在这两个类所在的包中分别新建UserEntity-validation.xml和AdminAction-validation.xml
(1)UserEntity-validation.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="name"> <field-validator type="requiredstring"> <message>账号不能为空</message> </field-validator> </field> <field name="password"> <field-validator type="requiredstring"> <message>密码不能为空</message> </field-validator> </field> </validators>
(2)AdminAction-validation.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="user"> <field-validator type="visitor"> <message>用户:</message> </field-validator> </field> <field name="code"> <field-validator type="fieldexpression"> <param name="expression"> #session.CODE.equalsIgnoreCase(code) </param> <message>${#session.CODE}:${code}</message> </field-validator> </field> </validators>
4、建立登陆的jsp页面
<s:form id="loginForm" action="login_AdminAction"> <div class="admin_main_top"></div> <div id="admin_main"> <div class="admin_main_head"></div> <div id="admin_main_content"> <ul class="admin_main_ul"> <li> <label>用户名:</label> <s:textfield name ="user.name" id="name"/> <span id="usererror" class="errorMeg"></span> </li> <li> <label>密码:</label> <s:password id="pwd" name="user.password" onfocus="clearError('pwderror')" /> <span id="pwderror" class="errorMeg"></span> </li> <li> <label>验证码:</label> <img src="<%=contextPath %>/authImg.servlet" id="authImg" onclick="refresh()" /> <s:textfield name="code" id="code" onFocus="clearError('codeerror');" /> <span id="codeerror" class="errorMeg"></span> </li> <li> <s:submit id="login_button" value="登录" /> </li> </ul> </div> </div> <div><s:fielderror cssStyle="color: red"></s:fielderror></div> </s:form>
Action的配置就不写了,说一下注意点。
(1)
<field-validator type="visitor">
<message>用户:</message>
</field-validator>
这段代码中message标签内不能为空,否则将会报错,visitor类型的作用在于,当验证字段user时,将获得user的类型,并根据类型UserEntity查找UserEntity-validation.xml,执行验证。
(2)
当你使用了图形验证码,你想在验证框架中将其进行验证时。需要先将图形验证码的字符串放入session中,然后在验证框架中验证。
<message>${#session.CODE}:${code}</message>
写这句的原因是我在执行图形验证的时候,老是验证不正确,所以我使用这句话,将存放在session中的code和我输入的code在错误信息内输出,已查看是否出现问题
(3)
如果你的表单使用的是simple方式,那么s:form是不会显示错误信息的,那么
我们在jsp页面写入 <s:fielderror cssStyle="color: red"></s:fielderror>,用来输出错误信息,当然你也可以针对每个字段输出错误信息。如果错误信息重复显示,说明你的action采用的单例模式,请将其修改为scope="prototype"
(4)
使用struts验证框架,需要配置input结果跳转。
(5)
若校验同时提供XML和validate()两种方法,则都会被执行,而且是XML校验先执行,validate()方法后执行。而错误信息都会显示。"short-circuit"属性仅针对xml有效
评论
恩,因为目前东西,还比较少,有些东西还在测试和验证,等到出现此类需求时。会采用2楼的建议,非常感谢你的意见
发表评论
-
linux下java8 启动spring-boot包
2018-05-09 09:00 0java8如何管理spring-boot的jar包 -
文件下载和浏览器直接打开
2016-07-09 10:03 0content-disposition=attac ... -
JSP文件下载
2015-11-02 16:03 682JSP工具之,文件下载 <% String fi ... -
maven学习笔记七 仓库
2014-07-03 23:37 0构件的仓库 仓库主要是在构建过程中处理构件和依赖包。 ... -
maven学习笔记六 构建配置
2014-07-02 22:22 0maven一直致力于使构建 ... -
maven学习笔记五 POM
2014-06-26 00:27 0POM project object model项目对象模 ... -
Maven学习笔记四 生命周期
2014-06-24 23:41 0Maven的项目管理和构建是基于生命周期这个概念的。 这意 ... -
maven3读书笔记 第一个maven工程
2014-06-17 10:06 0在命令行中输入: mvn archetype:gener ... -
tomcat7内存溢出错误的一些原因和解决方案
2013-01-11 19:42 10942今天在做公司一个工程2个版本的运行时,突然出现新版的工程在t ... -
在struts2中整合sitemesh
2013-01-10 21:56 2441今天在做个整合时,决定用sitemesh把几个页面的布局整理下 ... -
jfreechart学习笔记三 带刻度的蜘蛛图
2013-01-08 16:58 3160其实带刻度的蜘蛛图网上也有不少资料,我这个也是参照别人的资料 ... -
jfreechart学习笔记二 象限图
2013-01-08 11:01 2493用jfreechart画一个象限图,因为在jfreechart ... -
jfreechart使用笔记一 基本知识
2013-01-07 19:20 1598公司要做一些图表,各 ... -
Hibernate父子类同时映射一张表的问题
2012-09-17 19:37 3408今天在开发时发现一个问题 在查询一张表的 count 的时候 ... -
笔试面试注意点
2012-03-17 16:33 0记录一些笔试,面试中常常问到的问题吧: 1、String ... -
jbpm5实践笔记一
2012-03-13 11:28 0公司决定搞工作流开发,那么就有必要研究下jbpm这个东东了,废 ... -
windows下java备份mysql和还原mysql数据库
2012-03-09 15:26 1877import java.io.File; import ja ... -
linux firefox支持java
2011-12-28 11:26 0firefox支持java很简单如下步骤: 1. 退出 ... -
swfupload在火狐(firefox)下失效(302错误)的一种情况以及分析
2011-03-18 16:59 4424最近用了一下swfupload,因为一些定制化需求,感觉这个东 ... -
ehcache
2010-09-03 11:35 0Ehcache使用用例(一) Singleton创建方式 ...
相关推荐
10.1.2 Struts 2工作流中的验证框架 219 10.2 将动作关联到验证框架 222 10.2.1 使用ActionClass-validations.xml声明验证元数据 223 10.2.2 研究内建的验证器 226 10.3 编写自定义验证器 227 10.3.1 检查密码强度的...
跟随作者一道深入Struts 2,聆听大量来之不易的经验之谈,你对Struts 2开发框架的理解和应用水平都将更上一层楼。本书适合Java Web 程序员阅读和参考 第1章 Model 2应用程序 1 1.1 Model 2概览 1 1.2 带servlet...
一、准备工作及实例 3 ...小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11.Result配置详解 15 探讨type类型: 16 Type类型值 16 作用说明 16 对应类 16 chain 16 用来处理Action链 16 ...
书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 ...15.13 小结
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 ...15.13 小结
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 ...15.13 小结
5.2 客户端表单验证框架 5.3 服务器端验证 5.4 实现图形验证码 5.5 避免重复提交功能 5.6 缩略加水印图像 5.7 小结 第6章 网络硬盘 6.1 网络硬盘功能原理 6.2 网络硬盘功能具体实现——...
6.4.2 spring 2.5集成mvc框架struts 2 411 6.4.3 ssh 2组合框架的基本开发步骤—eportal启程 414 6.5 小结 423 第2篇 实践篇 第7章 ssh 2热身——构建新闻发布系统 427 7.1 门户网站新闻资讯基本分类 427 7.2 ...
10.1 Struts 2框架的特点 140 10.2 实例——Struts 2的“Hello World” 143 10.3 小结 151 第11章 利用JDBC访问数据库 152 11.1 JDBC基础 152 11.1.1 如何用JDBC访问数据库 152 11.2 实例——利用JDBC...
3.9本章小结 10 第4章 配置STRUTS组件 10 4.1 Web 应用部署描述符 10 4.2 STRUTS配置文件 10 4.3 应用资源文件 10 4.4 ANT的构建文件 10 4.5 struts中的日志 10 4.6 运用你的struts 10 第5章 理解ActionForm 10 5.1 ...
1.4 本章小结 5 第2章 MyEclipse集成开发环境的使用 6 2.1 MyEclipse集成开发工具界面 6 2.1.1 MyEclipse的菜单栏 7 2.1.2 MyEclipse的工具栏 13 2.1.3 MyEclipse的透视图 14 2.1.4 MyEclipse的视图 17 2.1.5 ...
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和...
第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP ...B.4 小结
《Web安全深度剖析》总结了当前流行的高危漏洞的形成原因、攻击手段及解决方案,并通过大量的示例代码复现漏洞原型,制作模拟环境,更好地帮助读者深入了解Web应用程序中存在的漏洞,防患于未然。...16.4 小结 345
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和...
目录 第一部分spring的核心 第1章开始spring之旅 1.1spring是什么 1.2开始spring之旅 1.3理解依赖注入 ...1.5小结 ...第2章基本bean装配 ...2.6小结 ...3.7小结 ...4.6小结 ...5.8小结 ...6.5小结 ...7.2验证用户身份 ...b.4小结
第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP ...B.4 小结