- 浏览: 97445 次
- 性别:
- 来自: 北京
最新评论
-
zhaolianyang:
leftcopychenhx 写道&是在什么情况作为逻 ...
JAVA 面试32问 -
zhaolianyang:
Mybeautiful 写道第二十六,当一个线程进入一个对象的 ...
JAVA 面试32问 -
leftcopychenhx:
&是在什么情况作为逻辑运算符呢
JAVA 面试32问 -
Mybeautiful:
第二十六,当一个线程进入一个对象的一个synchronized ...
JAVA 面试32问 -
zhaolianyang:
dayaolili 写道 那就换个有激情有动力的工作吧!换个适 ...
如何在工作中保持旺盛的状态???
struts2中的局部类型转换
新的需求:用户需要同时增加三个点的坐标。
一、找到之前创建的input.jsp页面,再增加两个textfield,用于输入新增的两个点的坐标:
二、在之前创建的类PointAction添加Point类型的两个属性:
三、找到之前创建的属性文件:PointAction-conversion.properties
,同样的要增加两个类型转换的映射:
四、找到之前的结果页面output.jsp:
效果图如下:
struts2中的全局类型转换
一、在src目录下创建xwork-conversion.properties文件(全局的属性文件):
注释掉PointAction-conversion.properties
中的内容如下:
重新运行的结果是和上面的局部运行的结果一致。
二、在com.test.converter包中创建PointConverter2.java类继承自StrutsTypeConverter类:
三、同时修改xwork-conversion.properties文件中的配置信息:
增加新的需求,在PointAction类中声明一个List集合类型对象Point:
一、修改PointAction类中的代码:
二、修改输入页面input.jsp:
三、在com.test.converter包下创建PointConverter3.java类:
四、修改PointAction-conversion.properties:
五、修改注释掉这里的代码xwork-conversion.properties:
六、修改输出页面output.jsp:
最终显示效果:
新的需求:用户需要同时增加三个点的坐标。
一、找到之前创建的input.jsp页面,再增加两个textfield,用于输入新增的两个点的坐标:
<body> <h3><font color="red">使用逗号将点的两个坐标分隔开</font></h3> <s:form action="pointConverter"> <s:textfield name="point" label="point"></s:textfield> <s:textfield name="point2" label="point2"></s:textfield> <s:textfield name="point3" label="point3"></s:textfield> <s:textfield name="age" label="age"></s:textfield> <s:textfield name="username" label="username"></s:textfield> <s:textfield name="date" label="birthday"></s:textfield> <s:submit label="submit"></s:submit> </s:form> </body>
二、在之前创建的类PointAction添加Point类型的两个属性:
package com.test.action; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; import com.test.bean.Point; public class PointAction extends ActionSupport { private Point point; private Point point2; private Point point3; private int age; private String username; private Date date; public Point getPoint() { return point; } public void setPoint(Point point) { this.point = point; } public Point getPoint2() { return point2; } public void setPoint2(Point point2) { this.point2 = point2; } public Point getPoint3() { return point3; } public void setPoint3(Point point3) { this.point3 = point3; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } @Override public String execute() throws Exception { return SUCCESS; } }
三、找到之前创建的属性文件:PointAction-conversion.properties
,同样的要增加两个类型转换的映射:
point=com.test.converter.PointConverter point2=com.test.converter.PointConverter point3=com.test.converter.PointConverter
四、找到之前的结果页面output.jsp:
<body> point:<s:property value="point"/><br> point2:<s:property value="point2"/><br> point3:<s:property value="point3"/><br> age:<s:property value="age"/><br> username:<s:property value="username"/><br> date:<s:property value="date"/> </body>
效果图如下:
struts2中的全局类型转换
一、在src目录下创建xwork-conversion.properties文件(全局的属性文件):
com.test.bean.Point=com.test.converter.PointConverter
注释掉PointAction-conversion.properties
中的内容如下:
#point=com.test.converter.PointConverter #point2=com.test.converter.PointConverter #point3=com.test.converter.PointConverter
重新运行的结果是和上面的局部运行的结果一致。
二、在com.test.converter包中创建PointConverter2.java类继承自StrutsTypeConverter类:
package com.test.converter; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; import com.test.bean.Point; public class PointConverter2 extends StrutsTypeConverter { @Override public Object convertFromString(Map context, String[] values, Class toClass) { Point point = new Point(); String[] paramValues = values[0].split(","); int x = Integer.parseInt(paramValues[0]); int y = Integer.parseInt(paramValues[1]); point.setX(x); point.setY(y); return point; } @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; } }
三、同时修改xwork-conversion.properties文件中的配置信息:
com.test.bean.Point=com.test.converter.PointConverter2
增加新的需求,在PointAction类中声明一个List集合类型对象Point:
一、修改PointAction类中的代码:
package com.test.action; import java.util.Date; import java.util.List; import com.opensymphony.xwork2.ActionSupport; import com.test.bean.Point; public class PointAction extends ActionSupport { // private Point point; // private Point point2; // private Point point3; private List<Point>point; private int age; private String username; private Date date; // public Point getPoint() // { // return point; // } // // public void setPoint(Point point) // { // this.point = point; // } // public Point getPoint2() // { // return point2; // } // // public void setPoint2(Point point2) // { // this.point2 = point2; // } // // public Point getPoint3() // { // return point3; // } // // public void setPoint3(Point point3) { // this.point3 = point3; // } public List<Point> getPoint() { return point; } public void setPoint(List<Point> point) { this.point = point; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } @Override public String execute() throws Exception { return SUCCESS; } }
二、修改输入页面input.jsp:
<body> <h3><font color="red">使用逗号将点的两个坐标分隔开</font></h3> <s:form action="pointConverter"> <s:textfield name="point" label="point"></s:textfield> <s:textfield name="point" label="point2"></s:textfield> <s:textfield name="point" label="point3"></s:textfield> <s:textfield name="age" label="age"></s:textfield> <s:textfield name="username" label="username"></s:textfield> <s:textfield name="date" label="birthday"></s:textfield> <s:submit label="submit"></s:submit> </s:form> </body>
三、在com.test.converter包下创建PointConverter3.java类:
package com.test.converter; import java.util.*; import org.apache.struts2.util.StrutsTypeConverter; import com.test.bean.Point; public class PointConverter3 extends StrutsTypeConverter { @Override public Object convertFromString(Map context, String[] values, Class toClass) { List<Point> list = new ArrayList<Point>(); for(String value : values){ Point point = new Point(); String[] paramValues = value.split(","); int x = Integer.parseInt(paramValues[0]); int y = Integer.parseInt(paramValues[1]); point.setX(x); point.setY(y); list.add(point); } return list; } @Override public String convertToString(Map context, Object o) { List<Point> list = (List<Point>)o; StringBuilder sb = new StringBuilder(); sb.append("["); int number = 0; for(Point point : list){ ++number; int x = point.getX(); int y = point.getY(); sb.append(number).append(" x = " ).append(x).append(" ,y = ").append(y).append(" "); } sb.append("]"); return sb.toString(); } }
四、修改PointAction-conversion.properties:
#point=com.test.converter.PointConverter #point2=com.test.converter.PointConverter #point3=com.test.converter.PointConverter point=com.test.converter.PointConverter3
五、修改注释掉这里的代码xwork-conversion.properties:
#com.test.bean.Point=com.test.converter.PointConverter3
六、修改输出页面output.jsp:
<body> point:<s:property value="point"/><br> age:<s:property value="age"/><br> username:<s:property value="username"/><br> date:<s:property value="date"/> </body>
最终显示效果:
发表评论
-
struts2学习笔记十九(第19讲.Struts2深入探索 续)
2013-01-31 01:26 829Struts2应用开发详解 第十九讲 Struts2 深入 ... -
struts2学习笔记十八(第18讲.Struts2深入探索)
2013-01-26 00:23 8301、在src目录下创建属性文件名struts.propert ... -
struts2学习笔记十七(第17讲.Struts2的国际化续)
2012-06-01 00:46 1262struts2的国际化: 1.页面的国际化,也就是jsp的国际 ... -
struts2学习笔记十六(第16讲.Struts2的国际化)
2012-05-24 23:35 854struts2学习笔记十六(第16讲.Struts2的国际化) ... -
struts2学习笔记十五(第15讲.Struts2的文件上传和下载续三)
2011-02-11 16:56 949Struts2的文件上传和下载续三 功能:用户可以自定义上传文 ... -
struts2学习笔记十四(第14讲.Struts2的文件上传和下载续二)
2011-01-21 16:00 1372Struts2的文件上传和下载续二 说明:使用struts2的 ... -
struts2学习笔记十三(第13讲.Struts2的文件上传和下载续)
2011-01-19 18:04 988Struts2的文件上传和下载续 接上面未完成的功能。 一、首 ... -
struts2学习笔记十二(第12讲.Struts2的文件上传和下载)
2011-01-18 14:57 1353Struts2的文件上传和下载 ... -
struts2学习笔记十一(第11讲.Struts2的核心 拦截器续)
2011-01-14 16:33 1054Struts2的核心 拦截器续 说明:拦截器的主要作用就是拦截 ... -
struts2学习笔记十(第10讲.Struts2的核心 拦截器)
2011-01-13 17:47 1003Struts2的核心 拦截器 一、修改RegisterAct ... -
struts2学习笔记九(第9讲.Struts2的校验框架 续)
2011-01-12 18:11 1115Struts2的校验框架 续 struts2同样支持客户端的 ... -
struts2学习笔记八(第8讲.Struts2的校验框架)
2011-01-12 15:44 961第8讲.Struts2的校验框架 之前的验证方式是stru ... -
struts2学习笔记七(第7讲.Struts2的输入校验续二)
2011-01-11 18:07 1086Struts2的输入校验续二 主要介绍addActionErr ... -
struts2学习笔记六(第6讲.Struts2的输入校验续一)
2011-01-10 14:32 1262Struts2的输入校验续一 说明: 遇到类型转换错误的时候 ... -
struts2学习笔记五(第5讲.Struts2的输入校验)
2011-01-07 18:36 1072Struts2的输入校验 数据校验是建立在类型转换的基础之上的 ... -
struts2学习笔记三(第3讲.Struts2的类型转换)
2011-01-05 17:31 1095struts2中的局部类型转换 其中一个主要的就是使用逗号将 ... -
struts2学习笔记二(第2讲.Struts2入门与配置续)
2011-01-05 16:36 966接上面未完成的功能:判断输入的用户名和密码是否正确。 一、创建 ... -
struts2学习笔记一(第1讲.Struts2入门与配置)
2011-01-05 00:12 1405struts2学习笔记一(第1讲.Struts2入门与配置) ...
相关推荐
Struts2是一个强大的Java web开发框架,它极大地简化了基于MVC模式的应用程序构建过程。在Struts2中,拦截器扮演着至关重要的角色,它们是实现业务逻辑和控制流程分离开来的重要组件。本篇将深入探讨Struts2的核心...
### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” > “New” > “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...
本篇笔记将详细介绍如何在MyEclipse环境中配置Struts2.0,并逐步演示从创建运行环境到实现简单的验证和自定义类型转换的过程。 首先,我们需要准备运行环境。MyEclipse 6.0 和 Tomcat 5.5 是开发Struts2.0应用的...
SSH项目是一种经典的Java Web开发框架组合,由Spring、Hibernate和Struts2三个开源框架组成。这个项目示例提供了一个基于这些技术的简单应用,帮助开发者理解如何将它们整合在一起进行实际开发。 **Spring框架**是...
### Java常用框架学习笔记 #### Hibernate ##### 1.1 Hibernate 实现数据库操作步骤 - **导入所需的Jar包**:为了使用Hibernate框架,首先需要在项目中导入Hibernate库。这通常意味着添加一系列与Hibernate相关的...
《马士兵Hibernate学习笔记》是一份详尽的教程,涵盖了Hibernate框架的核心概念和技术要点。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,它有效地解决了Java应用程序与数据库之间的数据交互问题,...
#### 第4章:Struts 2的核心技术:拦截器 - **4.1 拦截器在Struts 2中的缺省应用** - **默认拦截器栈**:Struts 2提供了一些预定义的拦截器栈,如`defaultStack`,包含了常用的拦截器。 - **自定义拦截器栈**:...
2. **编译源文件**:使用`javac`命令将源文件转换为.class字节码文件。 3. **运行程序**:使用`java`命令执行字节码文件。 **环境变量配置** 在Windows系统中,需要配置JDK的环境变量,特别是PATH变量,以便系统能...
{12.11.2}intersect与minus}{166}{subsection.12.11.2} {12.11.3}join}{166}{subsection.12.11.3} {12.11.3.1}cross join}{166}{subsubsection.12.11.3.1} {12.11.3.2}inner join}{167}{subsubsection.12.11.3.2...
### Java基础学习笔记知识点 #### 一、Java学习路线概览 Java学习通常分为几个阶段,从基础到高级,逐步深化。以下是对给定文件中提到的学习路线的详细解析: ##### 第一阶段:Java基础 - **JAVASE**:Java标准版...
注意:默认类型转换(自动类型提升)会丢失精度,但只有三种情况: int>float; long>float; long>double. 看一下他们的有效位就明白。 二进制是无法精确的表示 0.1 的。 进行高精度运算可以用java.math包中...
week[3..5] //返回week集合的子集合,子集合中的元素是week集合中的第4-6个元素 3,输出Map元素 这里的Map对象可以是直接HashMap的实例,甚至包括JavaBean实例,对于JavaBean实例而言,我们一样可以把其当成属性为key,...
### WebWork学习笔记知识点 #### 一、WebWork框架简介 - **定义**: WebWork是一个由OpenSymphony组织开发的MVC(Model-View-Controller)框架,专注于组件化和代码重用,适用于J2EE应用程序开发。 - **最新版本**:...
在李君老师的JavaEE学习笔记中,他重点讲解了如何在Spring框架中集成DWR,以实现更高效、更简洁的前后端交互。 #### 二、在Spring中集成DWR的第一种方式 李君老师首先介绍了通过在Struts2的插件中集成DWR的方法。...
本笔记将探讨CXF的基本概念、如何使用CXF构建Webservice以及与之相关的技术栈,如Spring、Struts2等。 1. **CXF简介** - CXF(CXF Xfire + XWS)是两个项目的合并,提供了SOAP、RESTful、XML/HTTP、WS-*等协议的...
这是学习任何新技术的第一步,Hibernate也不例外。通过创建一个简单的Java项目,引入Hibernate库,并编写一个实体类与数据库表对应,你会了解如何初始化SessionFactory,创建Session,以及执行基本的保存和查询操作...