Struts2之类型转换器
我们都知道从jsp页面传到后台的都是String类型,后台类中类型很多(int,Object[],Date等),这个时候就需要转换.
首先创建一个普通类继承ActionSupport,里面写一个execute()方法.
1 public String execute() { 2 System.out.println("username\t"+stu.getUsername()); 3 System.out.println("password\t"+stu.getPassword()); 4 System.out.println("birthday\t"+stu.getBrithday()); 5 return "yeah"; 6 }
先把实体类挂上:
1 public class Student { 2 private String username; 3 private String password; 4 private Date brithday; 5 6 public Date getBrithday() { 7 return brithday; 8 } 9 10 public void setBrithday(Date brithday) { 11 this.brithday = brithday; 12 } 13 14 public String getUsername() { 15 return username; 16 } 17 public void setUsername(String username) { 18 this.username = username; 19 } 20 public String getPassword() { 21 return password; 22 } 23 public void setPassword(String password) { 24 this.password = password; 25 }
类的结构图:
接下来写Struts2配置文件:
<struts> <package name="test" namespace="/" extends="struts-default"> <action name="Login" class="cn.jbit.dao.TheFirst"> <result name="yeah">success.jsp</result> <result name="input">success.jsp</result> </package> </struts>
自定义类型转化器:
创建一个键值对文件:
TheFirst-conversion.properties:
全局类型自定义转换器:
Struts2支持的日期格式是2016-3-19这种格式,如果要用2016/3/19就会报错,这时我们可以自己来定义转换器.
还是创建一个键值对文件convert.properties:
日期类型转换器:
首先创建一个普通类继承DefaultTypeConverter:
1 public class DateConversion extends DefaultTypeConverter { 2 @Override 3 public Object convertValue(Object value, Class toType) { 4 System.out.println("自定义类型转换器"); 5 System.out.println(value); 6 if (value instanceof String[]) { 7 String[] temps=(String[])value; 8 SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd"); 9 try { 10 return sdf.parse(temps[0]); 11 } catch (ParseException e) { 12 e.printStackTrace(); 13 } 14 } 15 return new Date(); 16 } 17 }
接下来可以在控制台上看到:
总结图: