Struts2之内置数据类型转换器
前言
本文主要介绍内置数据类型转换器使用。本文使用的struts版本为struts-2.2.1.1。
说明
Struts提供了一些内置的类型转换器,将请求参数中的字符串转换成相应的类型。内置类型转换支持的类型如下:
String
boolean / Boolean
char / Character int / Integer, float / Float, long / Long, double / Double
Date 使用本地化的日期格式
arrays
collections
Struts根据请求参数名(基于ONGL的参数名)将转换后的值赋给相应的Action中的属性。常用格式:
1.name —— 赋值给Action中属性名为name的属性
2.bean.firstname —— 赋值给Action中属性名为bean对象的firstname属性
3. people[0].name —— 赋值给List对象的name属性
4.friends['patrick'].name —— 赋值给Map对象的name属性
示例
BuilInConvertor.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<form action="../typeconvert/builtin.action" method="post">
姓名:<input type="text" name="name" /><br />
年龄:<input type="text" name="age" /><br />
出生日期:<input type="text" name="birthday" /><br />
爱好:<input type="checkbox" name="hobby" value="1" title="看电影"/>看电影
<input type="checkbox" name="hobby" value="2" />看小说
<input type="checkbox" name="hobby" value="3" />AAA
<br />
FirstName:<input type="text" name="nameBean.firstName" />LastName:<input type="text" name="nameBean.lastName" /><br />
<br />
List类型测试<br />
FirstName:<input type="text" name="listName[0].firstName" />LastName:<input type="text" name="listName[0].lastName" /><br />
FirstName:<input type="text" name="listName[1].firstName" />LastName:<input type="text" name="listName[1].lastName" /><br />
FirstName:<input type="text" name="listName[2].firstName" />LastName:<input type="text" name="listName[2].lastName" /><br />
Map测试:<br />
FirstName:<input type="text" name="mapName['name1'].firstName" />LastName:<input type="text" name="mapName['name1'].lastName" /><br />
FirstName:<input type="text" name="mapName['name2'].firstName" />LastName:<input type="text" name="mapName['name2'].lastName" /><br />
FirstName:<input type="text" name="mapName['name3'].firstName" />LastName:<input type="text" name="mapName['name3'].lastName" /><br />
Set测试:<br>
<input type="text" name="testSet" /><br />
<input type="text" name="testSet" /><br />
<input type="text" name="testSet" /><br />
<input type="submit" value="提交" />
</form>
</body>
</html>
BuiltInConvertorAction.java
package com.struts2.typeconvert;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import com.opensymphony.xwork2.ActionSupport;
public class BuiltInConvertorAction extends ActionSupport {
private int age;
private Date birthday;
private int[] hobby;
private String name;
private Name nameBean;
private List<Name> listName;
private Map<String, Name> mapName;
private Set<Integer> testSet;
@Override
@Action(value="/typeconvert/builtin",results={
@Result(name="success",location="/typeconvert/BuilInConvertor.jsp",type="dispatcher"),
@Result(name="input",location="/typeconvert/BuilInConvertor.jsp",type="dispatcher")
})
public String execute() throws Exception {
System.out.println("姓名:"+name);
System.out.println("年龄:"+age);
System.out.println("出生日期:"+birthday.toLocaleString());
System.out.println(nameBean.getFirstName()+" "+nameBean.getFirstName());
for(int i=0;i<hobby.length;i++){
System.out.println(" "+hobby[i]);
}
Iterator<Name> iter = listName.iterator();
while(iter.hasNext()){
Name name = iter.next();
System.out.println("姓名:"+name.getFirstName()+" "+name.getLastName());
}
Iterator<Name> iter1 = mapName.values().iterator();
while(iter1.hasNext()){
Name name = iter1.next();
System.out.println("姓名:"+name.getFirstName()+" "+name.getLastName());
}
Iterator<Integer> iter2 = testSet.iterator();
while(iter2.hasNext()){
System.out.println(iter2.next());
}
return super.execute();
}
//Getter and Setter method ..........
}
作者:红枫落叶
出处:http://www.cnblogs.com/wushiqi54719880/
关于作者:专注于Java企业运用、海量数据处理、hadoop、数字图像处理等。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过wushiqi54719880@126.com
联系我,非常感谢。
浙公网安备 33010602011771号