如何自定义Struts2表单验证后的错误信息显示格式/样式
来源:互联网 发布:速卖通打单软件 编辑:程序博客网 时间:2024/05/16 10:01
如何自定义Struts2表单验证后的错误信息显示格式/样式_第二话 如何自定义Struts2表单验证后的错误信息显示格式/样式_第二话 李顺利 2010年9月28日 Googel 标签: 李顺利 ;Java ;Java EE ;struts2 ;验证 ;错误信息 ;显示格式 ;自定义 ;换行 ;黑点 ;sfielderror ;后面 前面写过如何自定义Struts2表单验证后的错误信息显示格式/样式,文章,收到了几位好友的一些意见和支持感到很开心,现在网上类似问题的解决文章已经很多了,今天在这里,也仅是整理和学习,其中也算有一种新的方法来分享给大家。(Struts2 显示错误的时候出现黑点和换行问题) 环境 Struts 2.1.8.1 + Myeclipse 8.6 + Tomcat 7.0.2 前提 请大家搭建好Struts2的Web项目,这个应该很简单,就不在叙述,本篇文章主要做的是如何显示Struts的错误信息,那么这里就建立一个Action类,来模拟产生的错误。请看下面的Action类。(源码会在后面提供) public class DisplayErrorInfoAction extends ActionSupport { private static final long serialVersionUID = -2690064846056775963L; @Override public String execute() throws Exception { /** * 添加一些FieldError供测试,如果需要请自写validater方法 */ this.addFieldError("displayErrorInfo", "error!Please check it."); this.addFieldError("user.username", "名字有错误啦"); return INPUT; } } 方案第一种方案:使用OGNL拿值栈(ValueStack)的内容(重点推荐使用)主要是通过OGNL来取得Value Stack 中 errors 和fieldErrors的值。这里先来介绍下s:debug 的标签。 debug标签主要用于辅助测试,它在页面上生成一个超链接,通过该链接可以查看ValueStack和Stack Context 中的所有值信息。可以通过OGNL 中 s:property来取得相应的值(顺利提醒: s:debug 使用请放在 s:form外面,放在里面有什么效果,请大家试试就知道了)。附上本案例使用的代码。 注:请大家关注下error code 包含‘.’(类似于user.username)的取值方法: 和 (网上“struts2 property标签的 value属性” 的解决方案)
DisplayErrorInfoForStruts2Demo1(使用OGNL拿值栈的内容,推荐使用)
顺利整理
1.1.All ErrorInfos(Map):
1.2.All fieldErrorsInfos(Map):
2.1.DisplayErrorInfo in errors(errors.displayErrorInfo[0]):
2.2.DisplayErrorInfo in errors(errors['displayErrorInfo'][0]):
注:拿到值后,就可以按照自己的格式进行自定义显示了
2.3.DisplayErrorInfo in errors(一般不会使用到[1],这里仅是测试):
3.1.DisplayErrorInfo in fieldErrors(fieldErrors.displayErrorInfo[0]):
3.2.DisplayErrorInfo in fieldErrors(fieldErrors['displayErrorInfo'][0]):
注:建议使用fieldErrors取值,在Action中使用的是this.addFieldError
4.0.DisplayErrorInfo - user.username(正确的表达式.errors['user.username'][0]):
4.1.DisplayErrorInfo - user.username(正确的表达式.fieldErrors['user.username'][0]):
4.2.DisplayErrorInfo - user.username(错误的表达式1.errors.%{user.username}[0]):
4.3.DisplayErrorInfo - user.username(错误的表达式2.errors.# {user.username}[0]): 这种方法本身语言就有问题,详情请看JSP规范对# 的规范
4.4.DisplayErrorInfo - user.username(错误的表达式3.%{errors.user.username}[0]):
4.5.DisplayErrorInfo - user.username(错误的表达式4.errors.user.username):
效果如下: 第二种方案 修改Template(推荐使用) 修改Struts的Template 首先要知道Struts2 的UI Theme的概念,在Struts2中有四种Theme(也就是有四种Template),分别是archive、css_xhtml、simple、xhtml,可以通过解压Struts-core 的Jar包来查看这四种Theme的Template。 而Struts2使用的默认Template是xhtml,但是这根本不能满足需要,一般我们都会改用simple的Template,会使用类似下面的语句,切换到simple的template。 或者在 Struts.xml 加上(使用了constant这个就不需要在使用前面) 是如何知道xhtml是struts2默认template的,这可以看看Struts-core.jar 下面的org.apache.struts2 package下的default.properties文件里关于struts.ui.theme的配置。 现在Theme已经使用了simple了,那么就知道Struts2为什么会在显示错误信息的时候,加上黑点和换行了,在simple theme的fielderror.ftl(struts2-core-2.1.8.1/template/simple下) 文件里定义了,fielderror的显示template,其中加了标签 ,那么我们删除它们并把修改后的ftl放到工程目录src/template/simple 下就可以了。 具体的如何修改template请看如何自定义Struts2表单验证后的错误信息显示格式/样式。 在这里提醒一下大家, 一、使用这种方案的使用,请一定要切换到simple主题下。 二、在struts2-core-2.1以前只是使用了,但是在struts2-core-2.1以后比如struts2-core-2.1.8.1相应的文件中是 ..>(不是
- ,还有注意最后的一个匹配的">")
- 自定义Struts2表单验证后的错误信息显示格式/样式
- 自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式 .
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式/样式_第二话
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- 自定义Struts2表单验证后的错误信息返回到网页的显示格式/样式
- 自定义Struts2表单验证后的错误信息显示格式
- 自定义struts2验证框架的错误信息样式
- s3c6410存储器映射
- C#调用非托管DLL函数bitblt实现截屏
- 测试leader的职责和技能,对比一下自己
- C++中的引用
- MMU
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- LINK : E:/aaa/Debug/aaa.exe not found or not built by the last incremental link; performing full link
- 仿dtree编写的树型菜单,增加了可以动态增加节点
- 网页中实现浮动客服窗口
- 转发:struts中radio怎么样默认选中
- 转-oracle日期函数使用
- 枚举类型 和 if switch case
- 解决Linux系统下SSH远程登录很慢的问题
- Learning Linux(8): Preventing 'rm' command from removing important files