如何自定义Struts2表单验证后的错误信息显示格

系统 1636 0

 

    在 Struts2 中验证真的比较容易,可以在 Action 中直接写 validate ,也可以使用 validate 框架进行验证,但是有个问题一直困扰了我,直到现在有个小程序要用到这个方面的知识,那就是验证后如何很好地人性化地在 jsp 页面中显示了。

 

    大家都知道, Struts2 显示验证结果有一些方式,一般通过两种方式,介绍如下:

 

1. 在页面的上面或者某个位置全部显示错误。 代码:

< s:fielderror cssStyle = "color: red" ></ s:fielderror

这样会显示所有的错误信息,模拟效果如下:


如何自定义Struts2表单验证后的错误信息显示格式/样式
 

2. 在每个字段下面或上面显示,通过 

< s:fielderror cssStyle = "color: red" >

    < s:param > XXX (标签的 name 属性,比如 username </ s:param >

</ s:fielderror >

例: 名:

< input type = "text" name = "user.username" />

< s:fielderror cssStyle = "color: red" >

    < s:param > username </ s:param >

</ s:fielderror >

显示效果如下:


如何自定义Struts2表单验证后的错误信息显示格式/样式
 

    上面的差不多是 Struts 默认显示的两种方式,但是我们常见的显示方式并不是这样的,所有我们需要自定义这种格式,我们的习惯是把错误信息显示在某个出错字段的后面,一行显示,而它给了一个小黑点并且换了行,我们现在就来解决这个问题。 后面就是一步一步地进行,发现还真的解决了。这个时候也希望能够看看上面的文章。现提供我解决自定义错误显示方式的步骤。

 

1.   找到你的 struts2-core-2.XXX.jar 这个核心包,用软件解压;

2.   \struts2-core-2. XXX\template\simple 目录下找到 fielderror.ftl (跟我们自定义格式非常有关系的文件);

3.   根据 Struts2 模板中提到的,把上面的 fielderror.ftl 放到 WEB-INF/classes/template/ simple 目录下,这个我当时以为就在 WEB-INF 下新建一个 classes 的文件夹,后来提示已经存在,想想整个工程的结构发现, classes 是放 Java 编译后的文件的,所有,这个时候的操作是在 Src 目录下新建一个 template 的文件夹,再在里面新建一个 simple 的文件夹( template/ simple )(一定要注意建文件夹的步骤,是分两个文件夹建而不是建一个文件夹 template. simple ),把 fielderror.ftl 放到里面,目录结构如下:

 

如何自定义Struts2表单验证后的错误信息显示格式/样式
 

4.   修改 fielderror.ftl 配置文件,这一步才是关键,如何修改了,实际上也很简单,就是把 <ul></ul><li></li> 标签删除(仅仅是删除标签而不删除标签里面的内容),简便的方法就是用记事本打开这个文件并用空格替换上面的每个标签(一个一个来哦)。后面我会提供我已经修改后的这个文件,如果大家不想修改的话就直接把我修改后的文件放到上面的目录即可。

5.   上面一步就是把错误信息显示前面的小黑点和换行都去掉了,是个关键步骤了,后面就来显示了,还是用上面的方式

 

< s:fielderror   cssStyle = "color: red" >

    < s:param > XXX (标签的 name 属性,比如 username </ s:param >

</ s:fielderror >

要不要加 theme="simple" 大家可以试试看,我没有加也是可以的,你还可以通过 css 来定义一下错误信息显示的字体啊,颜色啊等,这里不再叙述。

6.    整个步骤的原理就是 Struts 会加载一些配置文件,如果我们的 classess 里面没有的话会找到 jar 包里面的,如果有的话优先使用配置文件。我们这里的就是用我们修改的 fielderror.ftl 配置文件来覆盖 jar 包里面的文件。

 

来看看我们修改后的自定义显示错误信息吧,截图如下:


如何自定义Struts2表单验证后的错误信息显示格式/样式
 


 

 

参考来源: http://blog.sina.com.cn/usc3l

 

如何自定义Struts2表单验证后的错误信息显示格式/样式


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论