`
wing123
  • 浏览: 799773 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2 xml 验证出现 Invalid field value for field 的解决

阅读更多

有两种方式: 全局修改 和 局部修改

 

缺省情况下, 所有的装换错误使用通用的i18n信息 xwork.default.invalid.fieldvalue , 你可以在你的全局il8n资源包中替换他(缺省文本是"Invalid field value for field xxx", 这里xxx是字段名称).

 

局部修改:

 

无论如何, 有时你会希望能够在每个字段上替换这一信息. 你可以在action相关的资源文件(Action.properties)中添加一个i18n信息: invalid.fieldvalue.xxx, 这里xxx是字段名称.

 

需要知道的是, 这些错误不会直接报告出来. 他们被添加到ActionContext.conversionErrors中. 有几种方法可以访问该map从而可以报告这些错误.

 

 

示例:

 

<form action="add" method="post">
   <s:fielderror></s:fielderror>
   <input type="text" name="box">
   <input type="text" name="width">
   <s:submit value="添加"></s:submit>
</form>
如果age输入为不为数字时会提示
? Invalid field value for field "width".
其中Invalid field value for field "width" 信息是struts2通过内置的类型转换器进行类型转换时,如果不能成功转换, struts2框架自动生成一条错误信息,并将该错误信息放到addFieldError里面,这种默认的输出信息格式是在  xwork-2.1.2.jar中定义com/opensymphony/xwork2/xwork-messages.properties文件中有一条xwork.default.invalid.fieldvalue=Invalid field value for field "{0}".这是一种全局的错误提示方式,整个系统中只要是字段类型转换错误都会这样提示,我们也可以改变这种输出格式,只要在全局的国际资源文件中重写xwork.default.invalid.fieldvalue就可以了.实现方式:struts.xml中加入<constant name="struts.custom.i18n.resources" value="messageResource"></constant>或者也可以在struts.properties中加入struts.custom.i18n.resources=messageResource
指定国际化资源文件名为messageResource. Properties
新建messageResource. Properties资源文件并添加数据xwork.default.invalid.fieldvalue={0} failure
修改之后字段类型转换错误提示为 : {0} failure所有的类型转换失败后,struts2会将基本类型设置为0,对象类型设置为null,这里的age的类型为Integer,当类型转换失败age值为null,如果age的类型为int,那么转换失败后值为0
这种提示信息不够友好,也可以定义局布的提示信息,为每一个Action新建一个properties文件,文件名为XXX.properties(Action.properties)
实现方式:新建RegistAction.properties并添加
invalid.fieldvalue.width=width error

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    使用struts2进行输入校验

    总结来说,Struts2提供了灵活的输入校验机制,允许开发者通过Action的`validate()`方法或者XML配置文件来定义验证规则。无论选择哪种方式,都能有效地确保从客户端接收的数据符合预期,从而提高了应用的安全性和用户...

    struts2验证笔录

    - **错误消息配置**:如`invalid.fieldvalue.age=age input error`,这样在年龄验证失败时,会显示“age input error”的错误消息。 ### 获取请求数据 为了在Action类中获取HTTP请求数据,Struts2提供了一个接口`...

    Struts2输入校验总结

    4. **Struts2内置验证程序**:Struts2提供了一系列预定义的验证程序类型(`type`),如`required`、`requiredstring`、`int`、`date`等,这些可以直接在XML文件中使用。它们对应不同的验证逻辑,例如: - `required...

    struts2_2校验框架

    &lt;message&gt;Invalid value for field 'myField'. ``` 或者采用更简洁的方式: ```xml &lt;field name="myField"&gt; &lt;field-validator type="conversion"&gt; &lt;param name="fieldName"&gt;myField &lt;message&gt;Invalid value ...

    struts2视频自学总结

    当验证失败时,Struts2会自动跳转到错误页面并显示错误信息,这些信息可以通过`invalid.fieldvalue`属性来自定义。 #### 拦截器与执行流程 拦截器是Struts2的核心概念之一,用于在Action执行前后进行预处理和后...

    struts2基础.txt

    xwork.default.invalid.fieldvalue={0} 错误 ``` #### 五、基于XML的验证规则 除了在Action类中直接实现 `validate()` 方法外,还可以通过XML文件来定义验证规则。例如,在 `PointAction-validation.xml` 文件中...

    struts1.2验证框架示例

    ### Struts 1.2 验证框架示例解析 #### 概述 在Web开发过程中,表单数据的有效性验证至关重要。Struts 1.2 提供了一套完整的验证框架来帮助开发者实现这一功能。本文将通过一个具体的示例详细介绍如何在Struts 1.2...

    Struts Validator验证器使用指南

    2. **验证规则配置文件** (`validator-rules.xml`):这是配置验证规则的主要文件。其中定义了表单元素的验证规则及相关的国际化支持。 3. **FormSet**:一组具有相同验证规则的表单字段集合,通常用于实现国际化的...

    struts2用户登录

    这个案例不仅介绍了如何搭建Struts2的开发环境,还详细展示了如何使用Struts2标签库来构建前端界面、编写后端逻辑以及实现输入验证等功能。此外,对于Struts2的一些基本概念如Action、Result等也有所涉及。这些知识...

    struts2的转换器例子

    总结起来,Struts2的转换器是处理用户输入数据的关键组件,允许开发者对数据进行验证、格式化和转换,以满足应用程序的需求。通过自定义转换器,你可以确保数据的正确性,并提供更健壮的错误处理机制。在实际开发中...

    Struts2教学阶段2

    - 修改`xwork.default.invalid.fieldvalue`键值以统一处理所有字段的转换错误。 - 或者针对特定字段自定义错误消息。 #### 六、拦截器 - **拦截器概念**:拦截器是Struts2中的关键组件之一,负责在方法调用前后...

    Struts Validation框架浅尝

    Struts Validation框架是Apache Struts框架的一个重要组成部分,主要用于在Web应用中实现表单验证功能。通过使用该框架,开发者可以方便地对用户输入的数据进行合法性检查,确保数据的有效性和安全性。 #### 验证...

    struts笔记

    Struts2中的错误处理机制主要通过`addFieldError`方法实现,该方法用于在表单验证失败时添加错误信息到用户界面。例如: ```java // 添加字段级别的错误信息 addFieldError("username", "用户名不能为空"); ``` 这...

    struts2-处理类型转换

    若需自定义错误信息,可以在Action所在目录下创建与Action同名的properties文件,例如PersonAction.properties,并在其中指定错误信息,如:`invalid.fieldvalue.person=无法把表单参数转换成 Person 类型`。...

Global site tag (gtag.js) - Google Analytics