struts2类型转换实现2(通过继承StrutsTypeConverter抽象类)
二.第二种struts2类型转换方式实例
1.convert.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>类型转换</title> </head> <body> <form action="convert.action" method="post"> point:<input name="point" type="text"> <input type="submit" value="submit"> </form> </body></html>
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ taglib uri="/struts-tags" prefix="s" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>类型转换结果页面</title> </head> <body> point:<s:property value="point"/> </body></html>
package com.hitsoft.model;public class Point {private int x;private int y;public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}@Overridepublic String toString() {String result = "x = " + x + " , y = " +y;return result;}}<?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="struts2" extends="struts-default"><action name="convert" name="code">package com.hitsoft.action;import java.util.Date;import com.hitsoft.model.Point;import com.opensymphony.xwork2.ActionSupport;public class ConvertAction extends ActionSupport{private Point point;public Point getPoint() {return point;}public void setPoint(Point point) {this.point = point;}public String execute() throws Exception{return "success";}}point=com.hitsoft.convert.PointConverter
package com.hitsoft.convert;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;import com.hitsoft.model.Point;public class PointConverter extends StrutsTypeConverter{@SuppressWarnings("unchecked")@Overridepublic Object convertFromString(Map context, String[] values, Class toClass) {Point point = new Point();String value = values[0];String[] result = value.split(",");point.setX(Integer.parseInt(result[0]));point.setY(Integer.parseInt(result[1]));return point;}@SuppressWarnings("unchecked")@Overridepublic String convertToString(Map context, Object o) {Point point = (Point) o;int x = point.getX();int y = point.getY();String result = "x: " + x + "y:" + y;return result;}}