已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司重要文件丢失紧急寻找供行政办公室预案
- 2026年六安市金安区社区工作者招聘考试参考题库及答案详解
- 2026年吉林省吉林市事业编单位人员招聘笔试参考试题及答案详解
- 2026年辽宁省朝阳市事业编单位人员招聘考试参考试题及答案详解
- 2026年浙江省嘉兴市社区工作者招聘考试参考试题及答案详解
- 2026年十堰市茅箭区网格员招聘考试备考题库及答案详解
- 2026年肇庆市鼎湖区社区工作者招聘笔试备考试题及答案详解
- 2026年深圳市盐田区网格员招聘笔试备考试题及答案详解
- 2026年江西省赣州市事业编单位人员招聘考试参考试题及答案详解
- 家校管理制度
- 2025新仁爱版七年级英语下册全册教案教学设计
- 人教版(2024新版)生物七年级下册期末复习知识点提纲
- 2025年浙江嘉兴市嘉通高速公路管理有限公司招聘笔试题库含答案解析
- 九年级物理教学经验交流会讲稿(共13张课件)
- 广西南宁市第三十五中学2024-2025学年七年级上学期开学分班考试数学试题(解析版)
- (高级)电气值班员技能鉴定考试题库(重点高频500题)
- 四宫格数独课件
- 一年级数学下册加减法口算练习题1400题(可直接打印)
- 初中英语首字母填空答题技巧详解(精心排版-可直接打印)
- 手术室建设标准
- 低压电工答题技巧
评论
0/150
提交评论