struts2类型转换中的异常处理

在网页中的资源信息过于丰富,如果用户在填写表单时不按照要求的数据类型输入,就会导致页面异常。如:年龄输入框只能输入整数,而用户输入了字母,页面就应该提示出数据类型不符合。struts2提供了自带的异常处理。

示例:

注册页面:index.jsp:

<h2>测试struts2添加单个信息</h2>
<s:form action="UserExceptionAction!test.action" method="post">
<s:textfield name="userinfo.uname" label="姓名"></s:textfield>
<s:textfield name="userinfo.age" label="年龄"></s:textfield>
<s:password name="userinfo.upass" label="密码"></s:password>
<s:textfield name="userinfo.birthday" id="txtBeginDate" label="生日"></s:textfield>
<s:submit value="注册"></s:submit>
</s:form>

action类:UserExceptionAction.java:

package com.web.action;

import com.opensymphony.xwork2.ActionSupport;
import com.web.entity.User;

@SuppressWarnings("serial")
public class UserExceptionAction extends ActionSupport {
	private User userinfo;

	public User getUserinfo() {
		return userinfo;
	}

	public void setUserinfo(User userinfo) {
		this.userinfo = userinfo;
	}

	public String test() {
		return SUCCESS;
	}
}

实体类:User.java:

package com.web.entity;

import java.util.Date;

public class User {
	private String uname;
	private String upass;
	private int age;
	private Date birthday;
	// set,get方法省略......
}

异常配置文件:UserExceptionAction.properties:

invalid.fieldvalue.userinfo.age=\u7528\u6237\u5E74\u9F84\u5FC5\u987B\u662F\u6574\u6570


成功界面:succes.jsp:

<body>
<h2>添加单个信息</h2>
姓名:<s:property value="userinfo.uname"/><br>
密码:<s:property value="userinfo.upass"/><br>
年龄:<s:property value="userinfo.age"/><br>
生日:<s:date name="userinfo.birthday" format="yyyy年MM月dd日"/><br>
</body>

struts.xml:

<struts>
<constant name="struts.devMode" value="true"></constant>
<!-- 配置包元素 -->
<package name="default" extends="struts-default" namespace="/">
<action name="UserExceptionAction" class="com.web.action.UserExceptionAction">
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>

注意:
异常配置文件:UserExceptionAction.properties的名称必须和action类的名称一致并且在一个包下面;
invalid.fieldvalue.userinfo.age中的userinfo是action里面的属性名称,age是实体类里面的属性名称。

测试效果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值