sturct2类型转化
第三种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"></br>
- <input type="submit" value="submit">
- </form>
- </body>
- </html>
2.convertResult.jsp
- <%@ 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>
3.Point.java(POJO类)
- 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;
- }
- @Override
- public String toString() {
- String result = "x = " + x + " , y = " +y;
- return result;
- }
- }
4.struts.xml
- <?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" class="com.hitsoft.action.ConvertAction">
- <result name="success">/convertResult.jsp</result>
- </action>
- </package>
- </struts>
5.ConvertAction.java
- 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";
- }
- }
6.xwork-conversion.properties(必须与struts.xml同一级包下定义)
- point=com.hitsoft.convert.PointConverter
7.PointConverter.java
- 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")
- @Override
- public 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")
- @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;
- return result;
- }
- }
8.访问地址:
http://localhost:8080/struts2/convert.jsp
输入:
1,2
输出:
point:1,2
说明:这种类型转换的优点是,对于PointConvert转换器,只有项目中用到Point对象转换,就可以自动转换
来源:http://wanglihu.iteye.com/blog/1405647
sturct2类型转化的更多相关文章
- Spring mvc @initBinder 类型转化器的使用
一.单日期格式 因为是用注解完完成的后台访问,所以必须在大配置中配置包扫描器: 1.applicactionContext.xml <?xml version="1.0" e ...
- C#定义类型转化 及 格式化字符串
operator 关键字 operator 关键字用来重载内置运算符,或提供类/结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用 ...
- C++中的显式类型转化
类型转化也许大家并不陌生,int i; float j; j = (float)i; i = (int)j; 像这样的显式转化其实很常见,强制类型转换可能会丢失部分数据,所以如果不加(int)做强制转 ...
- jQuery源码分析系列(36) : Ajax - 类型转化器
什么是类型转化器? jQuery支持不同格式的数据返回形式,比如dataType为 xml, json,jsonp,script, or html 但是浏览器的XMLHttpRequest对象对数据的 ...
- Asp.net 面向接口可扩展框架之使用“类型转化基础服务”测试四种Mapper(AutoMapper、EmitMapper、NLiteMapper及TinyMapper)
Asp.net 面向接口可扩展框架的“类型转化基础服务”是我认为除了“核心容器”之外最为重要的组成部分 但是前面博文一出,争议很多,为此我再写一篇类型转化基础服务和各种Mapper结合的例子,顺便对各 ...
- Asp.net 面向接口可扩展框架之类型转化基础服务
新框架正在逐步完善,可喜可贺的是基础服务部分初具模样了,给大家分享一下 由于基础服务涉及面太广,也没开发完,这篇只介绍其中的类型转化部分,命名为类型转化基础服务,其实就是基础服务模块的类型转化子模块 ...
- 《精通C#》自定义类型转化-扩展方法-匿名类型-指针类型(11.3-11.6)
1.类型转化在C#中有很多,常用的是int类型转string等,这些都有微软给我们定义好的,我们需要的时候直接调用就是了,这是值类型中的转化,有时候我们还会需要类类型(包括结构struct)的转化,还 ...
- java类型转化之SimpleDateFormat-时间转化
关于Date,时间戳(long),String类型之间的相互转换,主要是用到类SimpleDateFormat. 先介绍SimpleDateFormat类的一些常见格式: 1.参数: code des ...
- Javascript基础系列之(三)数据类型 (类型转化)
所有语言都有类型转化的能力,javascript也不例外,它也为开发者提供了大量的类型转化访法,通过全局函数,可以实现更为复杂的数据类型. var a = 3; var b = a + 3; var ...
随机推荐
- jquery取消事件冒泡的三种方法(推荐)
1.通过返回false来取消默认的行为并阻止事件起泡. jQuery 代码: ? 1 2 3 4 5 6 7 8 9 10 11 $("form").bind( "s ...
- JS常用的function集合
1.把字符串转为日期格式 (1) var str ='2012-08-12 23:13:15';str = str.replace(/-/g,"/");var date = ne ...
- 国内最全最详细的hadoop2.2.0集群的HA高可靠的最简单配置
简介 hadoop中的NameNode好比是人的心脏,非常重要,绝对不可以停止工作.在hadoop1时代,只有一个NameNode.如果该NameNode数据丢失或者不能工作,那么整个集群就不能恢复了 ...
- sqlite使用xcode编译
使用xcode去开发makefile的project(Building Makefile Projects With Xcode) 新建工程,template选择 external Build Sys ...
- Android 视频播放器切换到下个视频时残留上个视频画面的解决办法
最近在做一个Android视频播放器,遇到一个问题:切换到下一个视频时,中间会停留上一个视频的残存画面. 这是怎么回事? 我在网上找了很多资料,终于找到了原因:我是用自定义一个surfacev ...
- Swift-Switch穿透
switch vegetable { case "celery": print("Add some raisins and make ...
- Android touch mode和focusableInTouchMode分析
首先我们来看看touch mode的定义.它是用户和手机进行交互时view层次结构的一个状态.它本身是很容易理解的, 代表了最近一次的交互是否是通过触摸屏发生的,因为在Android设备上还存在别的交 ...
- Play Framework 完整实现一个APP(一)
A blog engine project yabe. 1.创建工程 >play new yabe 设置Application Name: Yet Another Blog Engine. 2. ...
- Tableau——BI software
Tableau 8权威指南 (权威的数据可视化实战手册,中国传媒大学教授沈浩.北京大学研究员袁晓如 联袂推荐) 触手可及的大数据分析工具——Tableau案例集 写给专业数据分析师的丛书,无门槛的大数 ...
- 什么是Java实例初始化块
在本篇文章,我将会使用一个例子展示什么是实例变量初始化块,实例初始化块和静态初始化块,然后说明在Java中实例初始化块是如何工作的. 执行顺序 查看下面的代码,你知道哪个先执行吗? package s ...