struts2类型转化

1、新建一个web项目,struts2;


2、在WebRoot目录下,新建一个input.jsp文件;

input.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>输出页面</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    point:<s:property value="point"/>
    age:<s:property value="age"/>
    username:<s:property value="username"/>
    date:<s:property value="date"/>
  </body>
</html>

3、找到src文件,在其下新建一个Java包com.you.converter,并在该包下新建一个Class,PointConverter;

PointConverter.java:

/**
 * @Title:PointConverter.java
 * @Package:com.you.converter
 * @Description:字符串转化
 * @author:Youhaidong(游海东)
 * @date:2013-7-1 下午10:51:41
 * @version V1.0
 */
package com.you.converter;

import java.util.Map;
import com.you.bean.Point;
import ognl.DefaultTypeConverter;

/**
 * 类功能说明
 * 类修改者 修改日期
 * 修改说明
 * <p>Title:PointConverter.java</p>
 * <p>Description:游海东个人开发</p>
 * <p>Copyright:Copyright(c)2013</p>
 * @author:游海东
 * @date:2013-7-1 下午10:51:41
 * @version V1.0
 */
public class PointConverter extends DefaultTypeConverter {

	/* (non-Javadoc)
	 * <p>Title:convertValue</p>
	 * <p>Description:</p>
	 * @param context
	 * @param value
	 * @param toType
	 * @return
	 * @see ognl.DefaultTypeConverter#convertValue(java.util.Map, java.lang.Object, java.lang.Class)
	 */
	@Override
	public Object convertValue(Map context, Object value, Class toType) {
		if(Point.class == toType)
		{
			//
			Point point = new Point();
			//
			String[] str = (String[])value;
			//字符串数组
			String[] paramValues = str[0].split(",");
			//
			int x = Integer.parseInt(paramValues[0]);
			//
			int y = Integer.parseInt(paramValues[1]);
			//给x,y设置值
			point.setX(x);
			point.setY(y);
			return point;
		}
		if(String.class == toType)
		{
			Point point = (Point)value;
			
			int x = point.getX();
			int y = point.getY();
			
			String result = "[x =" + x + ",y=" + y + "]";
			return result;
		}
		return null;
	}

}

4、再新建一个com.you.struts包,并在其中新建一个PointAction;

PointAction.java:

/**
 * @Title:PointAction.java
 * @Package:com.you.struts
 * @Description:转化类
 * @author:Youhaidong(游海东)
 * @date:2013-7-1 下午11:08:00
 * @version V1.0
 */
package com.you.struts;

import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
import com.you.bean.Point;

/**
 * 类功能说明
 * 类修改者 修改日期
 * 修改说明
 * <p>Title:PointAction.java</p>
 * <p>Description:游海东个人开发</p>
 * <p>Copyright:Copyright(c)2013</p>
 * @author:游海东
 * @date:2013-7-1 下午11:08:00
 * @version V1.0
 */
public class PointAction extends ActionSupport {

	/**
	 * @Fields  serialVersionUID:序列号
	 */
	private static final long serialVersionUID = 1L;
	
	private Point point;
	
	private int age;
	
	private String username;
	
	private Date date;

	/* (non-Javadoc)
	 * <p>Title:execute</p>
	 * <p>Description:</p>
	 * @return
	 * @throws Exception
	 * @see com.opensymphony.xwork2.ActionSupport#execute()
	 */
	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}

	
	public Point getPoint() {
		return point;
	}

	public void setPoint(Point point) {
		this.point = point;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

}

5、新建输出output.jsp

output.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>输出页面</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    point:<s:property value="point"/>
    age:<s:property value="age"/>
    username:<s:property value="username"/>
    date:<s:property value="date"/>
  </body>
</html>

6、配置struts.xml

struts.xml:

<action name="pointCoverter" class="com.you.struts.PointAction">
      <result name="success">/output.jsp</result>
</action>


7、在com.you.struts新建一个文件,PointAction-conversion.properties;

##PointConverter
point=com.you.converter.PointConverter

8、运行struts2,在地址栏输入:http://localhost:8080/struts2/input.jsp



9、点击“submit”,出现如下图:


10、文件路径如下:



原文地址:https://www.cnblogs.com/hzcya1995/p/13315792.html