struts2类型转换的简单使用
自定义类型转换
Struts2框架通过自定义类型转换器,可以将复合类型(对象等)与常规类型进行转换(String,int等)
- 所需要创建的文件
- 创建User类
- 对应的UserAction类,其中user对象与message也要创建对应的getter和setter方法
private String message;
private User user;
@Override
public String execute() throws Exception {
if(getUser()!=null){
message="用户名为:"+getUser().getUsername()+",密码为:"+getUser().getPassword();
return SUCCESS;
}else{
return INPUT;
}
}
- 创建转换类
public class UserConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Map context, Object value, Class toType) {
//value参数为要转化的对象,toType参数为要转换的类型
if(toType== User.class){
String[] params=(String[]) value;
User user=new User();
//定义分隔符为英文逗号
String[] userValues=params[0].split(",");
user.setUsername(userValues[0]);
user.setPassword(userValues[1]);
return user;
}else if(toType==String.class){
User user=(User)value;
return "<"+user.getUsername()+","+user.getPassword()+">";
}
return null;
}
}
- properties文件的配置
- login.jsp中的表单
<form action="UserAction" namespace="/">
<s:textfield name="user" label="登录"></s:textfield>
<s:submit value="提交"></s:submit>
</form>
- 成功页面success.jsp获取message信息
<body>
成功页面:${message}<br>
</body>
- 访问login.jsp页面
- 成功转换为User对象输出信息