自定义Struts2类型转换器
自定义Struts2类型转换器
一、自定义类型转换器
创建一个类继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter或继承该类的子类org.apache.struts2.util.StrutsTypeConverter
- public class DateConversion extends StrutsTypeConverter {
- @Override
- public Object convertFromString(Map context, String[] values, Class toClass) {
- // TODO Auto-generated method stub
- SimpleDateFormat sf=new SimpleDateFormat("yyyyMMdd");
- if(toClass==Date.class){
- try {
- return sf.parse(values[0]);
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }else if(toClass==String.class){
- return sf.format(values[0]);
- }
- return null;
- }
- @Override
- public String convertToString(Map context, Object o) {
- // TODO Auto-generated method stub
- return null;
- }
- }
在Action类所在的包下放置ActionClassName-conversion.properties文件,ActionClassName是Action的类名,后面的-conversion.properties是固定写法,PersonAction-conversion.properties:
属性名=类型转换器全类名;
- # syntax: <propertyName> = <converterClassName>
- birthday=org.han.util.DateConversion
或者封装对象:
- public class PersonConversion extends StrutsTypeConverter {
- @Override
- public Object convertFromString(Map context, String[] values, Class toClass) {
- SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
- Person per = new Person();
- per.setName(values[0]);
- try {
- per.setBirthday(sf.parse(values[1]));
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return per;
- }
- @Override
- public String convertToString(Map context, Object o) {
- // TODO Auto-generated method stub
- return null;
- }
- }
- @Namespace("/")
- public class PersonAction extends ActionSupport{
- private Person per;
- public Person getPer() {
- return per;
- }
- public void setPer(Person per) {
- this.per = per;
- }
- @Action(value="person",results={@Result(name="success",location="/index.jsp")})
- public String execute() throws Exception {
- // TODO Auto-generated method stub
- System.out.println(per.getBirthday());
- return SUCCESS;
- }
- }
- <body>
- <form action="person.action" method="post">
- <input type="text" name="per" />
- <input type="text" name="per" />
- <input type="submit" value="提交"/>
- </form>
- </body>
- per=org.han.util.PersonConversion
在src下放置xwork-conversion.properties文件,该文件内容为:
待转换的类型全类名=类型转换器全类名;
- java.util.Date=org.han.util.DateConversion
评论暂时关闭