Struts2的类型转换器
2016-05-24 17:33
344 查看
(本文的参考资料是Java Web开发 应用详解 独门架构)
首先我们要明白一点:
在Web应用中,所有的请求参数都是以字符串形式的,但是有时候我们需要获取这些参数,进行用Java进行处理,这时,就需要进行类型转换了。
Struts2的类型转换有三种方式:
内置类型转换器;
ognl类型转换器;
Struts类型转换器
这三种方式各有优缺点,在这里就不多做比较了。
现在我以Struts类型转换器为例,进行说明:
首先新建一个Product类:
好了,现在开始写Struts类型转换器,我们要继承抽象类StrutsTypeConverter,并且实现其中的两个抽象方法:
然后再写一个配置文件名字是:xwork-conversion.prpperties,该文件中的内容是:
包名.Product=包名.转换器类
在本例中,Product类所在的包是product,StrutsProductConverter类所在的包是converter,所以在文件中应该写:
product.Product = converter.StrutsProductConverter
再者就是一些struts.xml,web.xml文件的常见配置,还有就是常见的几个jsp页面,在这里就不多写了。
首先我们要明白一点:
在Web应用中,所有的请求参数都是以字符串形式的,但是有时候我们需要获取这些参数,进行用Java进行处理,这时,就需要进行类型转换了。
Struts2的类型转换有三种方式:
内置类型转换器;
ognl类型转换器;
Struts类型转换器
这三种方式各有优缺点,在这里就不多做比较了。
现在我以Struts类型转换器为例,进行说明:
首先新建一个Product类:
public class Product { private String name; private float price; private int count; public String getName() { return name; } public void setName(String name) { this.name=name; } public float getPrice() { return price; } public void setPrice(float price){ this.price=price; } public int getCount(){ return count; } public void setCount(int count){ this.count=count; } }然后在新建一个Action类:
public class ProductAction extends ActionSupport { private Product product; public void setProduct(Product product){ this.product=product; } public Product getProduct(){ return product; } public String execute(){ return SUCCESS; } }
好了,现在开始写Struts类型转换器,我们要继承抽象类StrutsTypeConverter,并且实现其中的两个抽象方法:
//字符串转换成目标类型
public abstract Object convertFromString(Map context, String[] values, Class toClass);
//目标类型转换成字符串 public abstract String convertToString(Map context, Object o);现在Struts转换器类型是
public class StrutsProductConverter extends StrutsTypeConverter{ @Override public Object convertFromString(Map arg0, String[] arg1, Class arg2) { // TODO Auto-generated method stub Product product = new Product(); String[] productValues = arg1[0].split(","); product.setName(productValues[0].trim()); product.setPrice(Float.parseFloat(productValues[1].trim())); product.setCount(Integer.parseInt(productValues[2].trim())); System.out.println("我执行的是Struts2中默认的转换器"); return product; } @Override public String convertToString(Map arg0, Object arg1) { // TODO Auto-generated method stub Product product = new Product(); return product.getName()+","+product.getPrice()+","+product.getCount(); } }
然后再写一个配置文件名字是:xwork-conversion.prpperties,该文件中的内容是:
包名.Product=包名.转换器类
在本例中,Product类所在的包是product,StrutsProductConverter类所在的包是converter,所以在文件中应该写:
product.Product = converter.StrutsProductConverter
再者就是一些struts.xml,web.xml文件的常见配置,还有就是常见的几个jsp页面,在这里就不多写了。
相关文章推荐
- Spring MVC详细运行流程
- JAVA 包与包之间访问(package)
- java内存管理
- 自己的struts2搭建教程
- Java的类和对象
- springmvc 时间格式的String转Date
- spring_Bean
- 堆排序Java实现
- java中从Spring、Hibernate和Struts框架的action、service和dao三层结构异常处理体系设计
- spring四种依赖注入方式
- KMP算法的java实现
- java进程间通信
- Spring MVC定义拦截器
- java进程间通信
- java单例模式的代码例子
- 深入分析Spring 与 Spring MVC容器
- 解决eclipse manven项目添加不了maven dependencis
- SpringMVC经典必看——使用 Spring2.5注释详解(@Autowired、@Resource 、@PostConstruct、PreDestroy 和 @Component)
- java-xwiki restful接口简单测试
- springmvc+spring+mybatis整合案例 [first]