struts2 内建了类型转换器,可以方便的将我们在页面上输入的字符串数据转换成JavaBean中的Boolean,Float,Integer,Double,Long等数据类型,在无法转换成功时,还可以给出错误提示,非常方便
首先简历JavaBean:
编写Action,需要继承ActionSupport,在action中有两个变量,一个是User类,一个是birth属性
我们定义birth属性和user类中的password属性都必须是Integer类型
web.xml
struts.xml (WEB-INF/classes下)
struts.properties(WEB-INF/classes下)
struts.custom.i18n.resources=messageResource
信息录入页面:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title></title>
</head>
<body>
<div style="color:red">
<s:fielderror />
</div>
<s:form action="Login">
<s:textfield name="user.username" key="username"></s:textfield>
<s:textfield name="user.password" key="password"></s:textfield>
<s:textfield name="birth" key="password"></s:textfield>
<s:submit value="login"></s:submit>
</s:form>
</body>
</html>
信息展示页面:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title></title>
</head>
<body>
<body>
转换成功!<br>
用户1的用户名为:<s:property value="user.username"/><br>
用户1的密码为:<s:property value="user.password"/><br>
</body>
</html>
我们在资源文件中加入:
xwork.default.invalid.fieldvalue={0}类型转换错误,运行index.jsp.,在三个输入框中都输入admin,则会出现以下提示:
user.password字段类型转换失败
birth字段类型转换失败
在资源文件中定义的是全局转换错误提示的内容,如果想对具体Action中的字段进行提示,则编写ActionName.properties,本文中对应的就是LoginAction.properties,放在和Action同一个目录下,内容格式如下:invalid.fieldvalue.birth (其中birth为action中属性名)
本文LoginAction.properties内容为:invalid.fieldvalue.birth=生日必须为数字
再次运行index.jsp.结果如下:
user.password字段类型转换失败
生日必须位数字