注意name=user和对应action中的实例名称一致
这些代码是写在HTML文件中的
1 <s:form action="login"> 2 <s:textfield name="user" label="用户"/> 3 <tr> 4 <td colspan="2"><s:submit value="转换" theme="simple"/> 5 <s:reset value="重填" theme="simple"/></td> 6 </tr> 7 </s:form>
创建类型转换器
1 public class UserConvert extends DefaultTypeConverter { 2 3 @Override 4 5 public Object convertValue(Map context, Object value, Class toType) { 6 7 if (toType == User.class) { 8 9 String[] para = (String[]) value; 10 11 User user = new User(); 12 13 String[] vals = para[0].split(","); 14 15 user.setName(vals[0]); 16 17 user.setPwd(vals[1]); 18 19 return user; 20 21 } else if (toType == String.class) { 22 23 User user = (User) value; 24 25 return "name" + user.getName() + ",pwd" + user.getPwd(); 26 27 } 28 29 return null; 30 31 } 32 33 }
注册类型转换器
局部转换器
创建文件:
LoginAction-conversion.properties 和action在一个目录
制度成员转换映射:
user=convert.UserConvert
全局转换器:
xwork-conversion.properties 和struts一个层级目录。对所有action都应用此类型转换器
domain.User=convert.UserConvert