`

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

阅读更多

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

(s:fielderror,换行,黑点)

 

前面一段时间学过一些Struts2的知识,感觉Struts2和1.x还是有很大的差别的,我还不好说1.x肯定会过时还是2.0会很快流行,这毕竟是 需要作为导向的。

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

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

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

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

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

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

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

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

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

</s:fielderror>

例:        用 &nbsp;戶&nbsp;名:

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

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

<s:param>user.username </s:param>

</s:fielderror>显示效果如下:

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

上面的差不多是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;
}
而后使用类似用
<td class="formFieldError"> <s:fielderror> <s:param value="%{'userRecord.…

不需要那么复杂的,你将struts-core*中的template解出来,然后你把它放到项目的WEB-INF下,在 struts.properties中添加代码
struts.ui.theme=simple
struts.ui.templateDir=WEB-INF/template
然后修改下simple下的fielderror.ftl文件,将该文件中的 <li>和 </li>删除;

或者完全拷贝simple的内容定义一个自己的UI;
比如将simple拷贝一份命名为default,同样修改fielderror.ftl,在新建一个文件为theme.properties,添加内容 parent = simple

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

 

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

来源:(http://blog.sina.com.cn/s/blog_5d31611a0100eubo.html ) - 如何自定义Struts2表单验证后的错误信息显示格式/样式_李顺利_新浪博客

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

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

 

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

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

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

 

3.  Struts2 模板 中提到

先前有网友问过我,他用了 Struts2 的校验,但是错误输出是在输入框的上方,但希望错误信息是显示在输入框的右方,该如何做。当时我只告诉了他要修改模板文件,也只是大概告诉了他是在某个 template 目录下的一个 ftl 文件,因那时具体操作自己也不太清楚。现在知道了线索,但实际修改还是很麻烦的。
    输入框 <s:textfield .../> 默认是用的 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放到里面,目录结构 如下:

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

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

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表单验证后的错误信息显示格式/样式 如何自定义Struts2表单验证后的错误信息显示格式/样式

 

 

提供一些关键文件的下载

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

 

本文转自:http://blog.sina.com.cn/s/blog_5d31611a0100eubo.html

分享到:
评论

相关推荐

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

    ### 如何自定义Struts2表单验证后的错误信息显示格式/样式 #### 环境配置 本文档基于以下技术栈来进行示例说明: - **框架版本**:Struts2.1.8.1 - **开发工具**:MyEclipse8.6 - **服务器**:Tomcat7.0.2 #### ...

    如何自定义Struts2表单验证后的错误信息显示格式_好资源0分送

    在Struts2中验证真的比较容易,可以在Action中直接写validate,也可以使用validate框架进行验证,这个我觉得比Struts1.x方便了很多,但是有个问题一直困扰了我,直到现在有个小程序要用到这个方面的知识,那就是...

    李顺利Struts2表单验证后回显错误信息 标签使用

    总结来说,通过学习李顺利老师的Struts2表单验证后回显错误信息的教程,我们可以有效地利用Struts2提供的标签和OGNL表达式来创建用户友好的错误提示,提升Web应用的用户体验。同时,通过自定义样式和利用拦截器,...

    struts2 表单验证验证信息显示位置及效果

    这篇博客文章“Struts2 表单验证验证信息显示位置及效果”探讨了如何有效地实现和展示Struts2中的表单验证信息。 首先,Struts2提供了一种灵活的验证机制,包括Action级别的校验和ValidatorForm级别的校验。Action...

    struts2错误显示

    对于上述两种默认的显示方式,可能并不满足所有应用场景的需求,例如需要将错误信息显示在字段之后,且保持在同一行内,这时就需要对Struts2的错误信息显示格式进行自定义。 ##### 自定义步骤: 1. **定制CSS样式**...

    struts2 fielderror去掉样式

    在标题"struts2 fielderror去掉样式"中,问题的核心是如何去除或者自定义Struts2在显示`FieldError`时默认的样式。Struts2在处理表单验证错误时,通常会将错误信息包裹在一个特定样式的HTML元素中,如`&lt;span&gt;`或`...

    Struts2表单标签

    当验证失败或出现其他错误时,Struts2可以自动显示错误信息。例如: ```html &lt;s:fielderror/&gt; &lt;s:actionerror/&gt; ``` 7. **动作参数**: 可以通过`param`属性传递额外的参数给Action,如: ```html 关键词...

    struts2验证笔录

    Struts2提供了多种方式来显示错误信息,包括使用`&lt;s:actionerror/&gt;`标签来显示Action级别的错误信息,或者使用`&lt;s:fielderror/&gt;`标签来显示字段级别的错误信息。 - **样式定制**:可以使用`cssStyle`属性来定制错误...

    Struts2中的validation_多国语言版 国际化i18n+struts2数据校验.zip

    Struts2允许自定义视图的呈现方式,包括错误消息的显示样式。通过修改或创建主题,我们可以控制错误信息的CSS样式,如`errorMessage格式样式表css.txt`所示,这可以增强错误提示的可读性和美观性。 至于`.txt`文件...

    Struts 2 取消 fielderror 系统默认样式

    在Struts 2中,fielderror是用来显示表单验证错误的关键元素。默认情况下,Struts 2为这些错误提供了特定的样式,以便用户能够清楚地看到输入验证失败的地方。然而,有时开发人员可能希望自定义这些样式,以更好地...

    struts错误处理机制小例子

    如果验证失败,Struts会将错误信息存储在ActionForm的字段中,并通过RequestDispatcher转发回错误页面,显示相应的错误信息。 2. **全局异常处理**:在struts-config.xml中,我们可以定义全局的异常映射(global-...

    jquery.validate 与 struts2的整合使用

    可以使用Struts2的拦截器来统一处理验证错误,并将错误消息返回到视图层,或者在JSON响应中包含错误信息,由前端展示。 通过以上步骤,我们可以实现jQuery Validate与Struts2的有效整合,达到前端和后端双重验证的...

    struts2-tags-API,struts2标签api

    Struts2标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列预定义的标签,用于处理视图层的展示逻辑,如表单处理、数据验证、国际化等。这些标签通常比纯HTML和脚本更易于维护,且与Action类解耦,提高了代码...

    Struts2框架及注释和用法

    Struts2提供了强大的表单验证功能,通过XML或者注解方式定义验证规则。例如,`@Size(max=10)`限制输入长度,`@NotEmpty`确保字段非空。 **7. 视图层** 视图通常由JSP页面构成,Struts2提供了标签库,如`s:property`...

    获取 STRUTS2 FIELDERROR

    在Struts2框架中,`&lt;s:fielderror&gt;` 是一个非常重要的标签,它用于显示表单字段级别的错误信息。这对于提升用户体验、确保数据输入的准确性具有重要意义。然而,在实际应用过程中,许多开发者可能会遇到一些关于如何...

    struts2简单介绍

    2. **内置的数据验证框架**:Struts2内置了一套完善的数据验证机制,能够帮助开发者轻松实现表单数据的有效性和格式验证。 3. **强大的拦截器机制**:Struts2的拦截器机制允许开发者在请求处理的过程中添加额外的...

    struts2 标签 tags API 参考文档

    `&lt;s:actionmessage&gt;` 和 `&lt;s:actionerror&gt;` 标签用于显示Action级别的消息和错误,这些通常与Struts2的全局消息和错误处理机制配合使用。 10. **Tag Attributes** 每个Struts2标签都有许多可配置的属性,这些属性...

    jqGrid与Struts2的结合应用

    Struts2可以通过拦截器处理这些异常,并返回适当的错误信息给jqGrid,显示给用户。 8. **性能优化**:为了提高性能,可以使用jqGrid的缓存机制,避免频繁的服务器请求。同时,Struts2的拦截器也可以用来优化如登录...

    JavaEE struts表单和ModelDriver以及主题

    1. **Struts表单** 在Struts框架中,表单类(Form Bean)是用来封装用户从视图层提交的数据的。它是一个JavaBean,包含了与HTML表单元素相对应的属性和getter/setter方法。当用户在浏览器中填写并提交表单时,...

Global site tag (gtag.js) - Google Analytics