




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Struts类型转换自定义类型Pointpublic class Point private int x; private int y; /省略getter and setterStruts Action:public class PointAction extends ActionSupport private Point point; .客户端输入: 这样,从客户端传过来point的String值,不能直接set到PointAction中的point对象中。同时,输出point对象时,直接调用getter也是不行的。这时,就需要一个类型转换器,实现Point类与String之间的转换。可以继承Struts中的ognl.DefaultTypeConverter实现。/StrutsHelloWorld/src/wintys/struts2/converter/PointConverter.java:package wintys.struts2.converter;import java.util.Map;import ognl.DefaultTypeConverter;public class PointConverter extends DefaultTypeConverter SuppressWarnings(unchecked) Override public Object convertValue(Map context, Object value, Class toType) /String = Point if(toType = Point.class) /获取request string的字符串数组 String params = (String)value; String param = params0; String points = param.split(,); Point point = new Point(); point.setX(Integer.parseInt(points0); point.setY(Integer.parseInt(points1); return point; /Point = String if(toType = String.class) Point point = (Point)value; int x = point.getX(); int y = point.getY(); return +x+,+y+; return null; 同时,还需要一个配置文件(须跟PointAction在同一目录下)PointAperties(名称为XXXAperties)来告诉Struts2 PointAction中属性使用哪一个转换器类。 PointAperties:point=wintys.struts2.converter.PointConverter2、Struts全局类型转换 对于每一个属性应用转换器,当属性过多时会显得很繁琐,这时可以使用Struts全局类型转换。全局类型转换器名称为perties,与struts.xml同在classes目录下。perties:#global converter settings#class to be converted = converterwintys.struts2.converter.Point=wintys.struts2.converter.PointConverter3、Struts集合类型转换 当PointAction中的属性是集合类型,跟非集合类型类似。 public class PointAction extends ActionSupport private List points; . 转换器类可以继承org.apache.struts2.util.StrutsTypeConverter,实际上StrutsTypeConverter继承于 ognl.DefaultTypeConverter。/StrutsHelloWorld/src/wintys/struts2/converter/StrutsPointConverter.java:package wintys.struts2.converter;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;/* * Struts类型转换: StrutsTypeConverter 继承于 ognl.DefaultTypeConverter * author Winty * version 2009-07-14 * */SuppressWarnings(unchecked)public class StrutsPointConverter extends StrutsTypeConverter Override public Object convertFromString(Map context, String values, Class toClass) List points = new ArrayList(); for(String value : values) String p = value.split(,); Point point = new Point(); point.setX(Integer.valueOf(p0); point.setY(Integer.valueOf(p1); points.add(point); return points; Override public String convertToString(Map context, Object o) List points = (List)o; StringBuilder sb = new StringBuilder(); sb.append(); for(Point p : points) sb.append(); sb.append(p.getX(); sb.append(,); sb.append(p.getY(); sb.append() ); sb.append(); return sb.toString(); 当然也需要在PointAction-conversion-properties中配置:PointAction-conversion-properties:#property = converterpoint=wintys.struts2.converter.PointConverterpoints=wintys.struts2.converter.StrutsPointConverter4、详细内容:/StrutsHelloWorld/WebRoot/converter/input.jsp:其中可以换成 此时,Point类无需类型转换,Struts会自己去找point对象的x与y的setter方法。当输出时,只需重写Point类的toString()方法即可。 请以逗号分割输入点的坐标,如:5,3 /StrutsHelloWorld/WebRoot/converter/output.jsp: /StrutsHelloWorld/src/struts.xml: /converter/output.jsp /StrutsHelloWorld/WebRoot/WEB-INF/web.xml: MyStruts2 org.apache.struts2.dispatcher.FilterDispatcher MyStruts2 /* /StrutsHelloWorld/src/wintys/struts2/converter/Point.java:package wintys.struts2.converter;/* * * author Winty * version 2009-07-12 */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; /StrutsHelloWorld/src/wintys/struts2/converter/PointAction.java:package wintys.struts2.converter;import java.util.Date;import java.util.List;import com.opensymphony.xwork2.ActionSupport;/* * * author Winty * verion 2009-07-12 */SuppressWarnings(serial)public class PointAction extends ActionSupport private Point point; private List points;/集合类型的转换 private int age; private String name; private Date birthday; 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 getName() return name; public void setName(String name) = name; public Date getBirthday() return birthday
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航空航天产业股权并购与航天器研发协议
- 《哈姆莱特(节选)》课件 统编版高中语文必修下册
- 教师招聘之《幼儿教师招聘》考前冲刺练习题及参考答案详解
- 教师招聘之《小学教师招聘》练习题含完整答案详解【历年真题】
- 绿色信贷对中国银行盈利能力的影响研究
- 教师招聘之《小学教师招聘》全真模拟模拟题及完整答案详解(有一套)
- 内蒙古呼伦贝尔农垦牙克石莫拐免渡河农牧场有限公司招聘笔试题库附答案详解(完整版)
- 2025卫生院医保业务流程
- 2024年呼伦贝尔农垦集团有限公司人员招聘笔试备考及答案详解(新)
- 2025年教师招聘之《幼儿教师招聘》综合提升练习题附参考答案详解(黄金题型)
- Rexroth (博世力士乐)VFC 3610系列变频器使用说明书
- ×××学校“学校学生资助管理机构成立文件”
- 动词过去式和过去分词的变化规则练习及答案
- 第四章 土壤污染调查与风险评价
- GB/T 9877-2008液压传动旋转轴唇形密封圈设计规范
- GB/T 12670-2008聚丙烯(PP)树脂
- 共享服务中心(HRSSC)课件
- 工程结构检测鉴定与加固第1章工程结构检测鉴定与加固概论课件
- 高中心理健康课程《人际关系-寝室篇》课件
- 数字色彩课件
- 一年级上册科学课件-第一单元 走近科学 复习课件-鄂教版(共23张PPT)
评论
0/150
提交评论