`

struts2 当类型转换错误时输出自己的错误提示信息

阅读更多
struts2为所有的primitive类型提供了自动类型转换,当类型转换出错时,struts2提供了默认的提示信息为:
Invalid field value for field "number".

但是这个提示信息很不友好,所以一般我们都必需定义自己的一个类型转换时的错误提示信息,以下是一个示例:

先提供一个输入页面:
/*** invalidMsg.jsp ***/
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>invalid message</title>
  </head>
  <body>
    <s:form action="invalid">
    <s:textfield name="number" label="请您输入一个整数"></s:textfield>
    <s:submit value="整数提交"></s:submit>
    </s:form>
  </body>
</html>

接着是Action:
package example.action;

import com.opensymphony.xwork2.ActionSupport;

public class InvalidAction extends ActionSupport {

	private int number;

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}

	@Override
	public void validate() {
		if (number < 0) {
			this.addFieldError("number", "请您输入一个大于0的整数!");
		}
	}

	public int getNumber() {
		return number;
	}

	public void setNumber(int number) {
		this.number = number;
	}

}


配置struts.xml
<action name="invalid" class="example.action.InvalidAction">
			<result name="input">/invalidMsg.jsp</result>
			<result name="success">/invalidMsg.jsp</result>
		</action>


接下来才是真正要做的事情,要完成自定义的类型转换错误信息,你需要在调用该属性的Action的同一目录下半新建文件:
Action名.properties
这里为:InvalidAction.properties
内容为:invalid.fieldvalue.number(属性名)= This isn't a Number


全部工作已经完成,当你输入"abc"提示信息为: This isn't a Number
当你输入小于0的整数时,提示信息为:"请您输入一个大于0的整数!"

注意:当你把InvaludAction validate方法时的代码改成如下:
@Override
	public void validate() {
		if (number <= 0) {
			this.addFieldError("number", "请您输入一个大于0的整数!");
		}
	}


然后再次输入"abc",此时你会发现在前面的两条提示语句一块显示出来了,原因是当struts2自动类型转换不成功时,会自动给int 类型附值0,对象类型则为null,这些规则同java 的类相同。
分享到:
评论

相关推荐

    struts中文资源文件转换工具

    资源文件通常包含应用程序的国际化(i18n)信息,如错误消息、提示和界面文本,这些内容往往需要根据不同的语言进行本地化。在Struts中,这些资源通常是以.properties为扩展名的文件,例如`messages_zh_...

    Struts2学习文档

    **5.5 类型转换错误处理** - **实现方式**:当类型转换失败时,如何进行错误处理。 #### 六、Struts2输入校验 **6.1 输入校验概述** - **概念介绍**:输入校验是确保用户提交的数据符合预期格式的过程,这是保障...

    struts 2 s标签 struts 2 s标签

    `s:actionmessage` 用于输出Action级别的消息,通常作为操作成功后的提示信息。类似地,使用`addActionMessage()`添加消息,然后在JSP页面中显示: ```java public String execute() { addActionMessage("第一条...

    struts中实现验证码

    如果匹配,验证通过,否则返回错误信息提示用户重新输入。 通过以上步骤,Struts2框架能够提供一个完整的验证码解决方案,确保了注册和登录等关键操作的安全性。在实际应用中,还可以结合其他安全措施,如限制同一...

    Struts技术

    - **`ApplicationResource.properties`**:这是一个资源文件,主要用于存放国际化信息,如消息提示等。需要注意的是,该文件不支持直接存储中文,如果需要在文件中添加中文,则需要将其转换为Unicode码。 #### 三、...

    Struts2文件下载程序使用框架实现

    Struts2的Result类型可以配置为"redirect"或"redirectAction",以确保浏览器直接请求静态资源,而不是由Struts2框架处理。 4) 用户请求Action时,会被重定向到静态文件的URL,由Web服务器负责文件的传输。 无论哪...

    JSON+Struts2事例

    2. **异常处理**:虽然示例代码中简单地使用了`e.printStackTrace()`来处理异常,但在实际生产环境中应更加严谨地处理异常情况,比如记录日志、返回错误提示等。 3. **安全性考虑**:在实际开发中还需要关注数据的...

    在struts2中使用JasperReports

    7. **Struts2 Action返回值**:在Action中,你可以将生成的报表作为流返回,然后在Struts2的Result类型中配置为stream或file,这样用户就可以在浏览器中查看或下载报表。 8. **错误处理**:别忘了在代码中添加适当...

    struts2验证码.pdf

    如果用户输入的验证码与服务器端保存的不一致,则返回错误信息,提示用户重新输入。 综上所述,Struts2验证码的实现利用了Java AWT库来生成内存中的图片,结合Struts2框架的流结果类型,实现了动态生成并返回验证码...

    Struts2的国际化(i18n)

    - 类型转换错误信息和验证错误信息也可以国际化,以便在不同语言环境下显示合适的错误提示。 5. **全局和局部国际化资源文件**: - **全局资源文件**:通常存放在src目录下,如`message_zh_CN.properties`和`...

    struts1实现文件上传

    - **文件格式检查**:通过字符串操作判断文件后缀名是否属于预设的合法格式列表,如果不符合,则返回错误提示。 - **文件大小计算与显示**:根据文件的实际大小,将其转换为更易读的单位(如KB或MB),并格式化...

    struts2 文件的上传与下载

    3. **输出错误提示**:如果文件上传失败或不符合要求,通常需要向用户提供反馈信息。这可以通过设置Action中的错误信息,并在视图层显示这些信息来实现。 #### 文件下载 文件下载同样是Struts2框架支持的一项重要...

    Jsp+Struts做的BBS系统

    8. **错误与异常处理**:全局错误页面处理可能出现的异常,提供友好的错误提示。 通过这样的设计,JSP+Struts的BBS系统可以有效地组织代码,实现良好的模块化,同时保证系统的可扩展性和维护性。开发者可以根据需求...

    Struts 分页经典代码

    这个“Struts 分页经典代码”实例很可能是包含了上述所有步骤的实现,通过阅读和理解源代码,开发者可以快速掌握Struts中分页的实现方式,并应用于自己的项目中。在prj_2这个压缩包中,应该包含Action类、DAO层的...

    hibernate struts处理mysql数据库blob字段实例

    在IT行业中,数据库存储大对象(BLOB,Binary Large Object)是常见的需求,尤其是在处理用户上传的文件如Word、Excel或PPT时。本实例主要探讨如何利用Hibernate和Struts框架来处理MySQL数据库中的BLOB字段,实现...

    struts2.1 + hibernate3.2 + spring 2.5 实现blob数据上传、下载

    - 在Struts2的配置文件(struts.xml)中,定义Action类及其关联方法,设置结果类型为流(result type='stream'),以处理二进制数据的输出。 - Hibernate的配置文件(hibernate.cfg.xml)中,需要指定数据源、映射文件和...

    struts技术手册

    - 当用户通过Web页面提交表单时,控制器接收请求,处理逻辑,并返回给视图。 #### 三、Struts框架概述 - **Struts实现MVC的机制**: - **视图**:使用JSP技术来构建。 - **模型**:包含实体类、服务类等,负责...

    Struts+Spring+Hibernate练习(完整)

    4. **配置 Action 形式**:在 `struts-config.xml` 文件中定义 `LoginAction` 的处理路径和输入输出页面。 5. **添加表单验证**:使用 Struts 验证插件 `ValidatorPlugIn` 来实现对表单数据的验证。 6. **编写验证...

    java web项目整体异常处理机制.doc

    在拦截器中,我们可以根据不同的异常类型进行分类处理,比如数据库错误、文件操作错误等,并生成更具针对性的错误提示信息,提供给用户更详细的问题线索。 以下是一个简单的异常拦截器实现思路: 1. 创建一个继承...

Global site tag (gtag.js) - Google Analytics