Struts2 类型转换
来源:互联网 发布:win10软件找不到了 编辑:程序博客网 时间:2024/05/20 12:51
类型转换
1. 在servlet中,如果表单进行非字符串数据提交的时候,需要进行类型转换,如提交年龄(age)。
2. 在struts2中,常见数据类型struts2已经自动的进行了类型转换,无需进行手动转换。
3. 在某些情况下,有自定义类型时,struts2不能完成类型转换,那么需要手动转换,如果该自定义类型使用的频率较高时,手动转换重复代码将会增多,可以使用struts2提供的类型转换器来进行类型转换。
4. 案例:如坐标点(x,y)进行转换的步骤如下:
a) 编写类型转换器,继承StrutsTypeConverter类
b) 编写 xwork-conversion.propertie配置文件,放于src目录下,内容为要转换的类型=类型转换器
5. 使用类型转换来完成上述案例
类型转换器:
publicclass PointConverterextends StrutsTypeConverter{
/**
* 将表单提交的字符串数据转换为自定义数据类型
* arg0: 是ActionContext
* arg1: 是要进行类型转换的字符串数组
* arg2: 是被转换的类型
*/
public Object convertFromString(Maparg0, String[]arg1, arg2) {
String value=arg1[0]; //获取值栈中的值
Point point=new Point();
String x=value.substring(1,value.indexOf(","));
String y=value.substring(value.indexOf(",")+1,value.length()-1);
point.setX(Integer.parseInt(x));
point.setY(Integer.parseInt(y));
returnpoint;
}
/**
* 将自定义的类型转换为字符串在前台显示----通过ognl表达式将会只用该方法进行转换上
* arg0: ActionContext
* arg1: 要转换的对象
*/
public String convertToString(Maparg0, Object arg1) {
Point point=(Point)arg1;
return"("+point.getX()+","+point.getY()+")";
}
}
xwork-conversion.properties配置文件
com.zys.system.model.Point=com.zys.converter.PointConverter
Action
publicclass PointAction {
private Pointpoint;
public Point getPoint() {
returnpoint;
}
publicvoid setPoint(Pointpoint) {
this.point =point;
}
public String execute(){
return"success";
}
}
struts.xml
<actionname="point"class="com.zys.action.PointAction">
<result name="success">/show.jsp</result>
</action>
point.jsp页面
<body>
<formaction="point.action"method="post">
point:<inputtype="text"name="point"/>
<input type="submit"value="提交"/>
</form>
</body>
show.jsp页面
<body>
点:${point }<br>
点:<s:propertyvalue="point"/>
</body>
- 【Struts2】:Struts2的类型转换
- struts2类型转换
- struts2类型转换续
- Struts2的类型转换
- struts2 类型转换流程
- Struts2中的类型转换
- [struts2]类型转换笔记
- struts2的类型转换
- Struts2之类型转换
- struts2的类型转换
- struts2 类型转换
- struts2 类型转换
- Struts2类型转换
- struts2日期类型转换
- struts2类型转换
- Struts2类型转换
- Struts2的类型转换
- Struts2日期类型转换
- 【学习摘记】马士兵Servlet&JSP_课时1-课时3_servlet初步
- POJ-2976 Dropping tests(01分数规划入门)
- intellij启动tomcat内存溢出:java.lang.OutOfMemoryError: PermGen space
- C++14:std::bind和std::function
- mongodb, redis, hbase三种nosql数据的对比
- Struts2 类型转换
- java字节数组流操作
- nfs高可用架构之DRBD+heartbeat
- Python分布式爬虫前菜(1):关于静态动态网页内容获取的N种方法
- selenium webdriver + python 环境搭建
- STM32学习笔记:系统的时钟
- java调用外部exe程序并传参
- 计算机模拟——你换不换手
- 解释MySQL外连接、内连接与自连接的区别