快捷搜索:

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

前面一段光阴学过一些Struts2的常识,感到Struts2和1.x照样有很大年夜的差其余,我还不好说1.x肯定会逾期照样2.0会很快盛行,这终究是必要作为导向的。

在Struts2中验证真的对照轻易,可以在Action中直接写validate,也可以应用validate框架进行验证,这个我感觉比Struts1.x方便了很多,然则有个问题不停困扰了我,直到现在有个小法度榜样要用到这个方面的常识,那便是验证后若何很好地人道化地在jsp页面中显示了。

大年夜家都知道,Struts2显示验证结果有一些要领,一样平常经由过程两种要领,先容如下:

1.在页面的上面或者某个位置整个显示差错

代码:s:fielderror cssStyle="color: red">s:fielderror>

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

2.在每个字段下面或上面显示,经由过程

s:fielderror cssStyle="color: red">

s:param>XXX(标签的name属性,象user.username)s:param>

s:fielderror>

例:用 戶 名:

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

s:fielderror cssStyle="color: red">

s:param>user.usernames:param>

s:fielderror>显示效果如下:

上面的差不多是Struts默认显示的两种要领,然则我们常见的显示要领并不是这样的,所有我们必要自定义这种款式,我们的习气是把差错信息显示在某个掉足字段的后面,一行显示,而它给了一个小黑点并且换了行,我们现在就来办理这个问题。

这个问题困扰了我好久,真的好久曩昔想过,然则没有彻底地办理,不停顿到现在,本日在google上搜了好久,终于给办理了,现在分享一下办理的道路。

先供给网上的思路给大年夜家(关键办理的思路)

1.struts2表单验证_差错信息的显示问题 中提到

引用 10 楼 starwar2030 的回覆:

可以在CSS中定义

.formFieldError {

font-family: verdana, arial, helvetica, sans-serif;

font-size: 12px;

color: #FF3300;

vertical-align: bottom;

}

.formFieldError ul{

margin: 0px;

padding: 3px;

vertical-align: middle;

}

而后应用类似用

不必要那么繁杂的,你将struts-core*中的template解出来,然后你把它放到项目的WEB-INF下,在struts.properties中添加代码

struts.ui.theme=simple

struts.ui.templateDir=WEB-INF/template

然后改动下simple下的fielderror.ftl文件,将该文件中的

和 删除;

或者完全拷贝simple的内容定义一个自己的UI;

比如将simple拷贝一份命名为default,同样改动fielderror.ftl,在新建一个文件为theme.properties,添加内容parent = simple

再改动struts.properties的struts.ui.theme=default;这样每个文件的theme就不要指定了

颁发于:2008-08-04 09:47:3114楼 得分:0

建议必要定义样式的同道看下自定义theme 这章的内容

还有 theme="simple" 是放在form标签内的

2.struts2 的 fielderror 样式问题 中提到

可以改一下STRUTS2的差错信息模板.

fielderror.ftl 这个里面可以改它的样式

3.Struts2 模板 中提到

先前有网友问过我,他用了 Struts2 的校验,然则差错输出是在输入框的上方,但盼望差错信息是显示在输入框的右方,该若何做。当时我只奉告了他要改动模板文件,也只是大年夜概奉告了他是在某个 template 目录下的一个 ftl 文件,因那时详细操作自己也不太清楚。现在知道了线索,但实际改动照样很麻烦的。

输入框  默认是用的 xhtml/text.flt 模板,text.ftl 包装了 smple/text.ftl,差错信息可以追溯发明是在 controlheader-core.ftl 中定义显示的,以是你可以把 xthml/text.ftl 和 controlheader-core.ftl 拷到 WEB-INF/classes/template/xhtml 目录中进行改动,WEB-INF/classes/template/xhtml 中的模板文件是优先于 struts2-core-2.x.x.jar 里的 template/xhtml 目录中的模板文件加载

这是我收拾出来的一些思路,然则看到这些的时刻,分外是第三条Struts2模板的时刻,感到自己有点思路了,后面便是一步一步地进行,发明还真的办理了。这个时刻也盼望能够看看上面的文章。现供给我办理自定义差错显示要领的步骤。

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放到里面,目录布局如下:

4.改动fielderror.ftl设置设置设备摆设摆设文件,这一步才是关键,若何改动了,实际上也很简单,便是把

标签删除(仅仅是删除标签而不删除标签里面的内容),简便的措施便是用记事本打开这个文件并用空格调换上面的每个标签(一个一个来哦)。后面我会供给我已经改动后的这个文件,假如大年夜家不想改动的话就直接把我改动后的文件放到上面的目录即可。

5.上面一步便是把差错信息显示前面的小黑点和换行都去掉落了,是个关键步骤了,后面就来显示了,照样用上面的要领

s:fielderror cssStyle="color: red">

s:param>XXX(标签的name属性,象user.username)s:param>

s:fielderror>

要不要加theme="simple"大年夜家看着办,反正我是没加,也是可以的,还有,这个时刻,你就可以经由过程css来定义一下差错信息显示的字体啊,颜色啊等,这里不再论述。

6.全部步骤的道理便是Struts会加载一些设置设置设备摆设摆设文件,假如我们的classess里面没有的话会找到jar包里面的,假如有的话优先应用设置设置设备摆设摆设文件。我们这里的便是用我们改动的fielderror.ftl设置设置设备摆设摆设文件来覆盖jar包里面的文件。

7.来看看我们改动后的自定义显示差错信息吧,截图如下:

是不是很惬意哦。有供给一些关键文件的下载

若何自定义Struts2表单验证后的差错信息显示款式

您可能还会对下面的文章感兴趣: