struts自动类型转换没有执行
准备测试一下自动类型转换的例子,比如说用户输入“abc,123”,那么就像abc转换为User对象的name字段,123转换为User对象的pass字段。但测试的过程中,发现我的Action的execute方法都没有走,直接输出了配置的input页面。类型转换器的方法也没有走。控制台也没有报错。
目录结构是这样的:
struts配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" namespace="/content" extends="struts-default">
<action name="show">
<result>/content/convertLogin.jsp</result>
</action>
<action name="login" class="com.zuobiao.convert.LoginAction">
<result>/WEB-INF/content/convert/welcome.jsp</result>
<result name="error">/WEB-INF/content/error.jsp</result>
<result name="input">/WEB-INF/content/convert/input.jsp</result>
</action>
</package>
</struts>
convertLogin.jsp代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
</head>
<body>
<form action="login">
用户名:<s:textfield name="user" value=""></s:textfield>
<s:submit value="提交"></s:submit>
</form>
</body>
</html>
LoginAction的代码:
public class LoginAction extends ActionSupport {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception {
if (getUser().getName().equals("abc")&&getUser().getPass().equals("123")){
return SUCCESS;
}else {
return ERROR;
}
}
}
User一个javabean对象:
public class User {
private String name;
private String pass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
转换器类:
public class UserConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Map context, Object value, Class toType) {
if (toType == User.class){
String[] params = (String[]) value;
User user = new User();
String[] userValues = params[0].split(",");
user.setName(userValues[0]);
user.setPass(userValues[1]);
return user;
}else if (toType == String.class){
User user = (User)value;
return "用户名是:"+user.getName()+"---用户名密码是:"+user.getPass();
}
return null;
}
}
LoginAction-conversion.properties内容:
user=com.zuobiao.convert.UserConverter
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论