Struts2之类型转换二
第一次笔记中,在convert类型装换类中只涉及到了对象从页面像后台转换的,这一节将对从后台向页面转换进行完善。
output.jsp
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<!-- 本质上,是调用了UserAction中的getUser方法 -->
<s:property value="user" />
</body>
</html>
这次是直接采用sturts标签来实现对action的直接操作
类型转换
UserConverter.java
public class UserConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Map context, Object value, Class toType) {
if (User.class == toType) {// 从页面向后台对象转换
String[] str = (String[]) value;
String firstStr = str[0];
StringTokenizer st = new StringTokenizer(firstStr, ";");
String username = st.nextToken();
String password = st.nextToken();
User user = new User();
user.setUsername(username);
user.setPassword(password);
return user;
} else if (String.class == toType) {// 从后台向页面转换
User user = (User) value;
String username = user.getUsername();
String password = user.getPassword();
String userInfo = "username: " + username + ", password: "
+ password;
return userInfo;
}
return null;
}
}
这里我们从后台向页面转换,是从User类型转向字符串类型。有一点要注意,从页面想后台转换,只能传递字符串,具体的变换操作必须由java代码来实现,而从后台向页面转换,则可以传递所有类型。
重新启动tomcat。
页面中输入:
点击submit,显示下面的结果。
no flection, no most frameworks.