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 的类相同。
分享到:
相关推荐
资源文件通常包含应用程序的国际化(i18n)信息,如错误消息、提示和界面文本,这些内容往往需要根据不同的语言进行本地化。在Struts中,这些资源通常是以.properties为扩展名的文件,例如`messages_zh_...
**5.5 类型转换错误处理** - **实现方式**:当类型转换失败时,如何进行错误处理。 #### 六、Struts2输入校验 **6.1 输入校验概述** - **概念介绍**:输入校验是确保用户提交的数据符合预期格式的过程,这是保障...
`s:actionmessage` 用于输出Action级别的消息,通常作为操作成功后的提示信息。类似地,使用`addActionMessage()`添加消息,然后在JSP页面中显示: ```java public String execute() { addActionMessage("第一条...
如果匹配,验证通过,否则返回错误信息提示用户重新输入。 通过以上步骤,Struts2框架能够提供一个完整的验证码解决方案,确保了注册和登录等关键操作的安全性。在实际应用中,还可以结合其他安全措施,如限制同一...
- **`ApplicationResource.properties`**:这是一个资源文件,主要用于存放国际化信息,如消息提示等。需要注意的是,该文件不支持直接存储中文,如果需要在文件中添加中文,则需要将其转换为Unicode码。 #### 三、...
Struts2的Result类型可以配置为"redirect"或"redirectAction",以确保浏览器直接请求静态资源,而不是由Struts2框架处理。 4) 用户请求Action时,会被重定向到静态文件的URL,由Web服务器负责文件的传输。 无论哪...
2. **异常处理**:虽然示例代码中简单地使用了`e.printStackTrace()`来处理异常,但在实际生产环境中应更加严谨地处理异常情况,比如记录日志、返回错误提示等。 3. **安全性考虑**:在实际开发中还需要关注数据的...
7. **Struts2 Action返回值**:在Action中,你可以将生成的报表作为流返回,然后在Struts2的Result类型中配置为stream或file,这样用户就可以在浏览器中查看或下载报表。 8. **错误处理**:别忘了在代码中添加适当...
如果用户输入的验证码与服务器端保存的不一致,则返回错误信息,提示用户重新输入。 综上所述,Struts2验证码的实现利用了Java AWT库来生成内存中的图片,结合Struts2框架的流结果类型,实现了动态生成并返回验证码...
- 类型转换错误信息和验证错误信息也可以国际化,以便在不同语言环境下显示合适的错误提示。 5. **全局和局部国际化资源文件**: - **全局资源文件**:通常存放在src目录下,如`message_zh_CN.properties`和`...
- **文件格式检查**:通过字符串操作判断文件后缀名是否属于预设的合法格式列表,如果不符合,则返回错误提示。 - **文件大小计算与显示**:根据文件的实际大小,将其转换为更易读的单位(如KB或MB),并格式化...
3. **输出错误提示**:如果文件上传失败或不符合要求,通常需要向用户提供反馈信息。这可以通过设置Action中的错误信息,并在视图层显示这些信息来实现。 #### 文件下载 文件下载同样是Struts2框架支持的一项重要...
8. **错误与异常处理**:全局错误页面处理可能出现的异常,提供友好的错误提示。 通过这样的设计,JSP+Struts的BBS系统可以有效地组织代码,实现良好的模块化,同时保证系统的可扩展性和维护性。开发者可以根据需求...
这个“Struts 分页经典代码”实例很可能是包含了上述所有步骤的实现,通过阅读和理解源代码,开发者可以快速掌握Struts中分页的实现方式,并应用于自己的项目中。在prj_2这个压缩包中,应该包含Action类、DAO层的...
在IT行业中,数据库存储大对象(BLOB,Binary Large Object)是常见的需求,尤其是在处理用户上传的文件如Word、Excel或PPT时。本实例主要探讨如何利用Hibernate和Struts框架来处理MySQL数据库中的BLOB字段,实现...
- 在Struts2的配置文件(struts.xml)中,定义Action类及其关联方法,设置结果类型为流(result type='stream'),以处理二进制数据的输出。 - Hibernate的配置文件(hibernate.cfg.xml)中,需要指定数据源、映射文件和...
- 当用户通过Web页面提交表单时,控制器接收请求,处理逻辑,并返回给视图。 #### 三、Struts框架概述 - **Struts实现MVC的机制**: - **视图**:使用JSP技术来构建。 - **模型**:包含实体类、服务类等,负责...
4. **配置 Action 形式**:在 `struts-config.xml` 文件中定义 `LoginAction` 的处理路径和输入输出页面。 5. **添加表单验证**:使用 Struts 验证插件 `ValidatorPlugIn` 来实现对表单数据的验证。 6. **编写验证...
在拦截器中,我们可以根据不同的异常类型进行分类处理,比如数据库错误、文件操作错误等,并生成更具针对性的错误提示信息,提供给用户更详细的问题线索。 以下是一个简单的异常拦截器实现思路: 1. 创建一个继承...