- 浏览: 139381 次
- 性别:
- 来自: 无锡
文章分类
最新评论
-
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 730JSP工具之,文件下载 <% 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 10994今天在做公司一个工程2个版本的运行时,突然出现新版的工程在t ... -
在struts2中整合sitemesh
2013-01-10 21:56 2474今天在做个整合时,决定用sitemesh把几个页面的布局整理下 ... -
jfreechart学习笔记三 带刻度的蜘蛛图
2013-01-08 16:58 3237其实带刻度的蜘蛛图网上也有不少资料,我这个也是参照别人的资料 ... -
jfreechart学习笔记二 象限图
2013-01-08 11:01 2564用jfreechart画一个象限图,因为在jfreechart ... -
jfreechart使用笔记一 基本知识
2013-01-07 19:20 1647公司要做一些图表,各 ... -
Hibernate父子类同时映射一张表的问题
2012-09-17 19:37 3491今天在开发时发现一个问题 在查询一张表的 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 1916import java.io.File; import ja ... -
linux firefox支持java
2011-12-28 11:26 0firefox支持java很简单如下步骤: 1. 退出 ... -
swfupload在火狐(firefox)下失效(302错误)的一种情况以及分析
2011-03-18 16:59 4456最近用了一下swfupload,因为一些定制化需求,感觉这个东 ... -
ehcache
2010-09-03 11:35 0Ehcache使用用例(一) Singleton创建方式 ...
相关推荐
Struts2的校验框架基于Apache Commons Validator,提供了多种预定义的验证器类型以及自定义验证器的功能。这些验证器可以在配置文件中或代码中定义,用于检查表单字段的有效性。 #### 三、示例分析 ##### 1. 配置...
综上所述,Struts2的输入校验机制不仅支持基本的手动校验,还提供了高度可配置和扩展的验证框架,使得开发者能够根据应用的具体需求,灵活地实现各种校验逻辑,从而提升应用程序的质量和用户体验。
### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...
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 检查密码强度的...
Struts2作为MVC框架,提供了丰富的功能和灵活性来处理表单验证、错误处理和服务端校验等问题。理解并熟练运用上述知识点,能够帮助开发者构建出更加健壮、用户体验良好的Web应用。在实际项目中,还需要结合Hibernate...
根据提供的信息,我们可以推断出这是一本关于Struts 2框架的书籍——《Struts 2实战 Struts 2 in action 的中文版》。本书主要介绍了Struts 2框架的相关概念、工作原理以及实际应用案例等内容。接下来,我们将根据...
本章节简要介绍了如何在 MyEclipse 6 中整合 Struts2 和 Spring 框架,包括下载 Struts2 开发包、开发简单的 HelloWorld 应用、使用国际化消息、自定义 Action 方法、表单处理、表单验证、文件上传下载以及访问 ...
这篇博客"Struts开发小结"可能涵盖了作者在使用Struts框架进行开发过程中的经验总结和一些关键点。由于没有直接的描述内容,我们将基于Struts框架的一般特性来讨论相关知识点。 1. **Struts 2框架基础**: Struts ...
跟随作者一道深入Struts 2,聆听大量来之不易的经验之谈,你对Struts 2开发框架的理解和应用水平都将更上一层楼。本书适合Java Web 程序员阅读和参考 第1章 Model 2应用程序 1 1.1 Model 2概览 1 1.2 带servlet...
本文将详细介绍如何利用Struts2框架结合AJAX技术实现身份证号的前端验证与后端校验,以及如何通过动态显示来提高用户体验。 #### 二、技术原理 ##### 2.1 Struts2框架简介 Struts2是一个基于Java的开源Web应用...
一、准备工作及实例 3 ...小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11.Result配置详解 15 探讨type类型: 16 Type类型值 16 作用说明 16 对应类 16 chain 16 用来处理Action链 16 ...
#### 小结 通过这个简单的Struts2实例,我们不仅学习了如何设置Struts2的环境,还掌握了基本的页面设计和交互逻辑。更重要的是,我们接触到了Struts2框架的一些核心概念,如过滤器配置、标签库使用、动态URL生成等...
在"struts资料\前半阶段小结"这个主题中,我们可以理解为是对学习或使用Struts框架初期阶段的一个总结。以下是对Struts框架核心知识点的详细解释: 1. **MVC模式**:MVC是一种设计模式,用于分离应用程序的数据、...
#### 小结 通过上述步骤,我们清晰地了解了Struts框架如何处理用户的请求并生成动态页面的过程。这种结构化的处理方式不仅提高了代码的可维护性和可扩展性,也使得开发者能够更加专注于业务逻辑的实现,而非繁琐的...
**问题描述**:在Struts2框架中,尝试使用`onsubmit`事件调用JavaScript进行表单验证时发现无效。 **原因分析**:`onsubmit`事件默认情况下并不会阻止表单提交流程。若表单验证未通过,则需要通过JavaScript手动阻止...
#### 五、小结 通过本文档的学习,我们不仅了解了如何在 MyEclipse 8 环境中快速搭建 Struts 2 开发环境,还掌握了 Struts 2 的基本配置文件 `struts.xml` 和 `web.xml` 的配置方法。这对于初学者来说是非常有价值...
通过本章的学习,我们不仅掌握了Struts2的基本开发流程,还深入了解了其与Spring框架的整合应用,以及如何处理文件上传下载、表单验证等关键问题。Struts2与Spring的结合,无疑为Java Web开发提供了一个强大而灵活的...
- **验证框架(Validation Framework)**:提供了一套完整的验证机制,支持客户端和服务器端的验证。 - **国际化(Internationalization)**:支持多语言,方便为不同地区用户提供本地化服务。 #### 五、小结 ...