Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1290|回复: 0

使用struts2.x中的ognl包中的DefaultTypeConverter类实现字符串到po

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-8-7 11:27:03 | 显示全部楼层 |阅读模式
    本例讲述将表单中的字符串转换为Point类:
    1,新建Point类:
    1. package com.test.bean;
    2. public class Point {
    3. private int x;
    4. private int y;
    5. public int getX() {
    6.   return x;
    7. }
    8. public void setX(int x) {
    9.   this.x = x;
    10. }
    11. public int getY() {
    12.   return y;
    13. }
    14. public void setY(int y) {
    15.   this.y = y;
    16. }
    17. }
    复制代码

    2,新建转换类:
    1. package com.test.converter;
    2. import java.util.Map;
    3. import com.test.bean.Point;
    4. import ognl.DefaultTypeConverter;
    5. public class PointConverter extends DefaultTypeConverter {
    6. @Override
    7. public Object convertValue(Map context, Object value, Class toType) {
    8.   if(Point.class == toType){
    9.    String[] str = (String[])value;
    10.    
    11.    String[] strParameters = str[0].split(",");
    12.    
    13.    Point point = new Point();
    14.    
    15.    int x = Integer.parseInt(strParameters[0]);
    16.    int y = Integer.parseInt(strParameters[1]);
    17.    
    18.    point.setX(x);
    19.    point.setY(y);
    20.    
    21.    return point;
    22.   }
    23.    
    24.   if(String.class == toType){
    25.    
    26.    Point point = (Point)value;
    27.    
    28.    int x = point.getX();
    29.    int y = point.getY();
    30.    
    31.    String result = "[x="+x+",y="+y+"]";
    32.    
    33.    return result;
    34.   }
    35.    
    36.   return null;
    37. }
    38. }
    复制代码

    3,新建Action类继承ActionSupport类:
    1. package com.test;
    2. import java.util.Date;
    3. import com.opensymphony.xwork2.ActionSupport;
    4. import com.test.bean.Point;
    5. public class PointAction extends ActionSupport {
    6. private Point point;
    7. private int age;
    8. private String username;
    9. private Date birthday;
    10. public int getAge() {
    11.   return age;
    12. }
    13. public void setAge(int age) {
    14.   this.age = age;
    15. }
    16. public Date getBirthday() {
    17.   return birthday;
    18. }
    19. public void setBirthday(Date birthday) {
    20.   this.birthday = birthday;
    21. }
    22. public Point getPoint() {
    23.   return point;
    24. }
    25. public void setPoint(Point point) {
    26.   this.point = point;
    27. }
    28. public String getUsername() {
    29.   return username;
    30. }
    31. public void setUsername(String username) {
    32.   this.username = username;
    33. }
    34. @Override
    35. public String execute() throws Exception {
    36.   return SUCCESS;
    37. }
    38. }
    复制代码

    4,在struts.xml中配置action:
    1.       <action name="pointConverter" class="com.test.PointAction">
    2.         <result name="success">/output.jsp</result>
    3.       </action>
    复制代码

    5,新建资源文件:PointAction-conversion.properties(前缀为action的名字后缀都是-conversion.properties):
    1. point=com.test.converter.PointConverter
    复制代码

    6,输入页面:input.jsp和结果页面:output.jsp:
    input.jsp
    1.    <s:form action="pointConverter">
    2.      <s:textfield name="point" label="point"></s:textfield>
    3.      <s:textfield name="age" label="age"></s:textfield>
    4.      <s:textfield name="username" label="username"></s:textfield>
    5.      <s:textfield name="birthday" label="birthday"></s:textfield>
    6.      <s:submit label="submit"></s:submit>
    7.    </s:form>
    复制代码

    output.jsp
    1.   point:<s:property value="point"/><br/>
    2.   age:<s:property value="age"/><br/>
    3.   username:<s:property value="username"/><br/>
    4.   birthday:<s:property value="birthday"/><br/>
    复制代码


    显示结果:
    回复

    使用道具 举报

    该用户从未签到

    发表于 2011-8-7 11:32:29 | 显示全部楼层
    很好的例子。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-24 23:57 , Processed in 0.385565 second(s), 34 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表