第一种:使用DefaultTypeConverter转换
JSP页面
<s:textfield name="point" label="point"></s:textfield>
<s:textfield name="age" label="ages"></s:textfield>
<s:textfield name="username" label="usernames"></s:textfield>
<s:textfield name="date" label="birthdays"></s:textfield>
提交到相应的Action之后会读取和Action同目录的文件
ConverterAction-conversion.properties
point=com.langhua.converter.PointConverter
这样就会找到这个转换器
package com.langhua.converter;
import java.util.Map;
import com.langhua.bean.Point;
import ognl.DefaultTypeConverter;
public class PointConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Map context, Object value, Class toType) {
//从页面转到服务器 toType表示要转化的类型
if(Point.class == toType){
//有可能收集的是数组所以是个String的数组
String[] values = (String[]) value;
String[] args = values[0].split(",");
Point point = new Point();
point.setX(Integer.parseInt(args[0]));
point.setY(Integer.parseInt(args[1]));
return point;
}
//从服务器转到页面
if(String.class == toType){
Point p = (Point) value;
return "["+p.getX()+","+p.getY()+"]";
}
return null;
}
}
调用里面的方法
然后跳转到相应的页面再调用里面的方法
<action name="pointconverter" class="com.langhua.action.ConverterAction">
<result name="success">/output.jsp</result>
</action>
最后在页面输出
point:<s:property value="point"/><br/>
age:<s:property value="age"/><br/>
username:<s:property value="username"/><br/>
brithday:<s:property value="date"/><br/>
第二种,全局转换
和struts.xml同目录下面加入这样一个文件
xwork-conversion.properties
里面指定
com.langhua.bean.Point=com.langhua.converter.PointConverter1
这样只要遇到Point类,就会使用后面的转换器转换
第三种使用struts2提供的类StrutsTypeConverter extends DefaultTypeConverter来转换
如下
package com.langhua.converter;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import com.langhua.bean.Point;
public class PointConverter1 extends StrutsTypeConverter {
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
Point p = new Point();
String[] parms = values[0].split(",");
p.setX(Integer.parseInt(parms[0]));
p.setY(Integer.parseInt(parms[1]));
return p;
}
@Override
public String convertToString(Map context, Object o) {
Point p = (Point)o;
return p.toString();
}
}
第四种可以在页面写成这样
<s:textfield name="point.x" label="x"></s:textfield>
<s:textfield name="point.y" label="y"></s:textfield>
这样的话就不要什么配置文件了
分享到:
相关推荐
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
struts2学习笔记!因为还没有全部学完,所以分部分分享!主要内容:struts.xml配置,web.xml配置 Action要点!全局类型转换,部分类型转换,类型转换文件 类型装换错误的处理问题局部使用,把中文汉字转换为编码 struts2对...
01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 七、 Action的动态调用方法 8 八、 Action通配符(wildcard)的配置 9 ...
Struts2环境搭建 Struts2类型转换 Struts2输入校验 拦截器 文件的上传与下载 Struts2的国际化 深入探析 struts2与servlet API耦合方法
NULL 博文链接:https://zhaolianyang.iteye.com/blog/859890
struts2学习笔记,详细说明了struts2框架的执行流程,类型转换,输入校验和国际化等等
NULL 博文链接:https://zhaolianyang.iteye.com/blog/861529
NULL 博文链接:https://zhaolianyang.iteye.com/blog/870600
11.拦截器 interceptor(和之前学的filter很类似) ...可以帮我们丰富action的功能,比自动类型转换(页面传一个String类型的id,接收的时候id为我们自己定义long类),或者自动帮我们把值放入到action里面对应的属性中等等
Struts学习笔记,struts2的配置,类型转换
JavaEE5学习笔记11-JSF转换器验证器使用经验总结。
类型转换 博文链接:https://wuzhaohuixy-qq-com.iteye.com/blog/710102
{1.6}数据类型转换}{26}{section.1.6} {1.7}方法}{26}{section.1.7} {1.8}运算符}{27}{section.1.8} {1.8.1}自增运算}{28}{subsection.1.8.1} {1.8.1.1}Postincrement}{28}{subsubsection.1.8.1.1} {1.8.1.2}...
为了访问数据模型中名为struts2的书的作者的名字,可以使用如下语法: book.author.name //全部使用点语法 book["author"].name book.author["name"] //混合使用点语法和方括号语法 book["author"]["name"] //全部使用...
int 32bit, -2^31~2^31-1 (2147483648,20亿,10位有效数字) long 64bit, -2^63~2^63-1 (900亿亿,20位有效数字) float 32bit, 9位有效数字,含小数(四舍五入)(小数点算一位,正负号不算) double 64bit, 18位...
Struts2.X的学习讲义 适合入门者进一步的提高对Struts的认识。
精通Struts,非扫描版,学习总结笔记,并有颜色区分,通过Word版本手写后转换而得.绝对是网上最清晰版本.
2009-02-24 08:42 165165 37065 常见的专业问题解决办法\Java核心技术学习笔记--异常和调试_Believe ┭┮ YourSelf.mht 2009-03-20 16:36 142683 39110 常见的专业问题解决办法\JR - 专题论坛问题 - eclipse??如何...