struts2的数据类型转换两种父类

struts2配置文件:
<package name="struts2" extends="struts-default" namespace="">
<action name="index" class="com.web.struts.LoginAction" method="test">
<result name="success">/output.jsp</result>
</action>
</package>
LoginAction:
package com.web.struts;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
private String username;
private String password;
private Point point;

public Point getPoint() {
return point;
}
public void setPoint(Point point) {
this.point = point;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String execute() {
System.out.println("成功!");
return "success";
}
public String test() {
System.out.println("成功2!");
return "success";
}



}
Point.java:
package com.web.struts;

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;
}

}
PointConverter.java:
package com.web.struts;

import java.util.Map;

import ognl.DefaultTypeConverter;

public class PointConverter extends DefaultTypeConverter {

@Override
public Object convertValue(Map context,Object value, Class toType) {
if(Point.class == toType){

Point point = new Point();

String[] string = (String[])value;
String[] paramValue = string[0].split(",");

int x = Integer.parseInt(paramValue[0]);
int y = Integer.parseInt(paramValue[1]);

point.setX(x);
point.setY(y);

System.out.println(x+":"+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+ "]";
System.out.println(x+":"+y);
return result;

}

return null;
}

}
封装后的类型转换:
package com.web.struts;

import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

public class PointConverter2 extends StrutsTypeConverter {

@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
Point point = new Point();

String[] paramValue = values[0].split(",");

int x = Integer.parseInt(paramValue[0]);
int y = Integer.parseInt(paramValue[1]);

point.setX(x);
point.setY(y);

System.out.println(x+":"+y);

return point;
}

@Override
public String convertToString(Map context, Object o) {
Point point = (Point)o;

int x = point.getX();
int y = point.getY();
String result = "简化版[ x = " + x +" y = "+y+ "]";
System.out.println(x+":"+y);
return result;
}

}


局部类型转换LoginAction-conversion.properties配置信息:
point=com.web.struts.PointConverter:point是属性


全局类型转换xwork-conversion.properties配置信息:
com.web.struts.Point=com.web.struts.PointConverter
com.web.struts.Point包下面的对象

登陆页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'Login2.jsp' starting page</title>
</head>
<body>
<s:form action="/index.do">
<s:textfield name="point" label="坐标"></s:textfield>
<s:textfield name="username" label="用户名"></s:textfield>
<s:password name="password" label="密码"></s:password>
<s:submit></s:submit>
</s:form>
</body>
</html>
显示页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


<title>My JSP 'ouput.jsp' starting page</title>

</head>

<body>
坐标<s:property value="point"/>
用户名<s:property value="username"/>
密码<s:property value="password"/>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值