struts.xml:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd"><struts><constant name="struts.devMode" value="true"></constant><package name="test" namespace="/" extends="struts-default"><action name="test" class="com.bjsxt.action.TestAction"><result>/test.jsp</result></action></package></struts>

TestAction.java:

package com.bjsxt.action;import java.awt.Point;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;import com.opensymphony.xwork2.ActionSupport;public class TestAction extends ActionSupport {private String name;private int age;private Date d;Set<String> interests;Map<String, String> users;Point p;List<Point> ps;Map<String, Point> points;@Overridepublic String execute() throws Exception {return super.execute();}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Date getD() {return d;}public void setD(Date d) {this.d = d;}public Set<String> getInterests() {return interests;}public void setInterests(Set<String> interests) {this.interests = interests;}public Map<String, String> getUsers() {return users;}public void setUsers(Map<String, String> users) {this.users = users;}public Point getP() {return p;}public void setP(Point p) {this.p = p;}public List<Point> getPs() {return ps;}public void setPs(List<Point> ps) {this.ps = ps;}public Map<String, Point> getPoints() {return points;}public void setPoints(Map<String, Point> points) {this.points = points;}}

  

全局注册转换 src下新建属性文件: /xwork-conversion.properties

java.awt.Point=com.bjsxt.converter.MyPointConverter

如果局部: 放在action包下: /TestAction-conversion.properties:

p=com.bjsxt.converter.MyPointConverter

  

转换java:

package com.bjsxt.converter;import java.awt.Point;
import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;public class MyPointConverter extends StrutsTypeConverter{@Overridepublic Object convertFromString(Map context, String[] values, Class toClass) {Point p = new Point();String[] strs = (String[])values;String[] xy = strs[0].split(",");p.x = Integer.parseInt(xy[0]);p.y = Integer.parseInt(xy[1]);return p;      }@Overridepublic String convertToString(Map context, Object o) {// TODO Auto-generated method stubreturn o.toString();}}

  

如下访问:

http://localhost:8080/struts2_3700_type_conversion/test?name=a&age=20
http://localhost:8080/struts2_3700_type_conversion/test?&d=1988-08-08 12:39:56
http://localhost:8080/struts2_3700_type_conversion/test?&interests=math&interests=english
http://localhost:8080/struts2_3700_type_conversion/test?&users['a']=usera&users['b']=userb
http://localhost:8080/struts2_3700_type_conversion/test?p=2,3

test.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>Type Conversion</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>name:<s:property value="name"/><br/>age:<s:property value="age"/><br/>date:<s:property value="d"/><br/><s:date name="d" format="yyyy/MM/dd HH:mm:ss"/><br/><s:property value="interests"/><br/><s:property value="users"/><br/><s:property value="p"/><br/><s:property value="ps"/><br/>points:<s:property value="points"/><br/></body>
</html>

  

测试结果:

http://localhost:8080/struts2_3700_type_conversion/test?d=1988-08-08 12:39:56http://localhost:8080/struts2_3700_type_conversion/test?interests=math&interests=english
[math, english]http://localhost:8080/struts2_3700_type_conversion/test?name=a&age=20
结果:
name:a
age:20http://localhost:8080/struts2_3700_type_conversion/test?d=1988-08-08 12:39:56
结果: 1988/08/08 12:39:56http://localhost:8080/struts2_3700_type_conversion/test?interests=math&interests=english
结果: [math, english]http://localhost:8080/struts2_3700_type_conversion/test?users['a']=usera&users['b']=userb
结果: {b=userb, a=usera}http://localhost:8080/struts2_3700_type_conversion/test?p=2,3
java.awt.Point[x=2,y=3]http://localhost:8080/struts2_3700_type_conversion/test?ps=2,3&ps=9,0
结果:[java.awt.Point[x=2,y=3], java.awt.Point[x=9,y=0]]http://localhost:8080/struts2_3700_type_conversion/test?points['a']=8,9&points['b']=1,0
结果: points:{b=java.awt.Point[x=1,y=0], a=java.awt.Point[x=8,y=9]}

  

  

转载于:https://www.cnblogs.com/wujixing/p/5395887.html

Struts2--类型转换相关推荐

  1. struts2类型转换和验证

    struts2类型转换 null属性的处理 当属性是一个javaBean时,将由对象工厂创建所需的对象, 当属性是声明为一个Collection或者是List,那么将构建一个ArrayList 当属性 ...

  2. Struts2类型转换的说明及案例分析

    Struts2类型转换的说明及案例分析 10级学员 张家玮课堂笔记 建立项目.添加Struts 2所需的类库及修改web.xml的步骤不再提示,本例取项目名为"Struts2TypeConv ...

  3. struts2类型转换+校验

    http://383984216-qq-com.iteye.com/blog/1151938 1.action中validate()与validateXxx() 用于action执行前的校验,如果校验 ...

  4. Struts2 类型转换和数据校验

    学习内容 Struts 2类型转换 Struts 2数据校验 能力目标 熟悉Struts 2自带类型转换器 能自定义类型转换器 自定义输入校验功能 熟悉Struts 2内置校验器 本章简介 Strut ...

  5. Struts2 类型转换(易百教程)

    在HTTP请求中的一切都被视为一个String由协议.这包括数字,布尔值,整数,日期,小数和一切.每一件事情是一个字符串,将根据HTTP.然而,Struts类可以有任何数据类型的属性.Struts的自 ...

  6. struts2教程(4)--类型转换

    Struts2类型转换 1. struts2内部提供大量类型转换器,用来完成数据类型转换问题 boolean 和 Boolean char和 Character int 和 Integer long ...

  7. Struts2之类型转换

    http://blog.csdn.net/xiazdong/article/details/7229682 一.Struts2 类型转换介绍 类型转换:解析HTTP请求参数,将Http请求参数赋值给A ...

  8. struts2之token,类型转换和数据校验

    文章目录 1 Token防重 1.1 token内部原理 1.2 实现步骤 1.2.1 在页面中添加标签 1.2.2 配置strtus.xml配置 2 类型转换器 2.1 Struts2类型转换 2. ...

  9. Struts2学习入门

    Struts 2 教程 Apache的Struts2是一个优雅的,可扩展的框架,用于创建企业准备的Java Web应用程序.该框架旨在简化整个开发周期,从构建,部署,维护应用程序随着时间的推移. Ap ...

  10. ava method org.apache.struts2.components.Form.getValidators(String) threw an exception when invoke

    struts2校验框架 校验配置文件的DTD在xword-core-2.2.3.jar中,系统自带的校验器的xml配置文件是 xword-core-2.2.3.jar里com.opensymphony ...

最新文章

  1. pandas使用groupby.first函数、groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异)
  2. DIY Ruby CPU 分析 Part III
  3. 3.1 数据链路层功能概述
  4. 怎么同步github上的原项目和fork
  5. linux程序加载器,Linux 动态连接加载器 ld-linux用法
  6. java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray
  7. 小白开学Asp.Net Core 《十》
  8. sonar 代理_Sonar
  9. 如何删除github远程仓库?三部搞定!
  10. python怎么操作_python怎么操作mysql
  11. snapmix与Bi-Tempered Logistic Loss(自制数据集纯度不高效果好)
  12. java只有整形才能运算符为,java入门_初识java
  13. python time时间戳和格式化日期_[转] Python之time模块的时间戳、时间字符串格式化与转换...
  14. 在社会上闯荡必须要牢记的
  15. 【路径规划】基于A星算法机器人静态避障路径规划matlab代码
  16. Linux 内核 颜色,Linux操作系统内核版的表示方法是( )
  17. 基于Java的卡诺图化简
  18. 解剖caffe mode:Blobs, Layers和Nets
  19. 站群程序-免费站群程序排名
  20. SAP ABAP 使用 ALSM_EXCEL_TO_INTERNAL_TABLE 批导/上载大数据量 Excel (2)

热门文章

  1. C++笔记----运算符重载
  2. linux管理员权限下执行popen,执行shell命令的函数——system()、popen()
  3. java nextDouble exception_java 控制台输入输出 nextdouble问题
  4. allegro中10mil过孔_Allegro中增加过孔的方法
  5. axios直传阿里云,获取上传进度已以及取消上传
  6. Java二十三设计模式之-----桥接模式
  7. 开发反应执行阿里云mysql语句报错
  8. dpkg 被中断,您必须手工运行 sudo dpkg -configure -a 解决
  9. 2009年北京第一场雪
  10. WCF分布式安全开发实践(10):消息安全模式之自定义用户名密码:Message_UserNamePassword_WSHttpBinding...