//index.jsp 访问属性 <a href="tags?username=u&password=p">tags</a> theme测试 <a href="theme.action">go</a> <br /> <br /> <form action="user" method="post"> name: <input name="name"> age: <input name="age"> <input type="submit" value="add"> <s:token></s:token> <!-- 添加token,防止重复提交 --> </form> <br> <br /><!-- 从http接收的参数是String类型 --> <!-- d=1988-9-30&interests=asd,wa&ps=9,8&ps=8,0&p=0,9&users['qw']=q&points['a']=2,2 --> name: <s:property value="name" /> <br /> age: <s:property value="age" /> <br /> date: <s:property value="d" /> <br /> <s:date name="d" format="yyyy/MM/dd HH:mm:ss" /> <br /> interests: <s:property value="interests" /> <br /> users: <s:property value="users" /> <br /> p: <s:property value="p" /> <br /> ps: <s:property value="ps" /> <br /> points: <s:property value="points" />
//struts.xml <constant name="struts.i18n.encoding" value="GBK" /> <!-- internationalization --> <package name="test" namespace="/" extends="struts-default"> <action name="test" class="com.bjsxt.action.TestAction"> <result>/index.jsp</result> </action> </package>
//action package com.bjsxt.action; import java.awt.Point; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class TestAction extends ActionSupport { //http传的参数是String类型 private String name = "awa"; private int age = 23; private Date d; //d=1988-9-30 Set<String> interests; //interests=asd,wa 传值 Map<String, String> users; //用users['qw']=q传值 Point p; //p=0,9 List<Point> ps; //ps=9,8&ps=8,0传值 Map<String, Point> points; //用points['a']=2,2传值 @Override public String execute() throws Exception { return super.execute(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getD() { return d; } public void setD(Date d) { this.d = d; } public Set<String> getInterests() { return interests; } public void setInterests(Set<String> interests) { this.interests = interests; } public Map<String, String> getUsers() { return users; } public void setUsers(Map<String, String> users) { this.users = users; } public Point getP() { return p; } public void setP(Point p) { this.p = p; } public List<Point> getPs() { return ps; } public void setPs(List<Point> ps) { this.ps = ps; } public Map<String, Point> getPoints() { return points; } public void setPoints(Map<String, Point> points) { this.points = points; } } package com.bjsxt.converter; import java.awt.Point; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; public class MyPointConverter extends StrutsTypeConverter { @SuppressWarnings("unchecked") @Override public Object convertFromString(Map context, String[] values, Class toClass) { Point p = new Point(); String[] strs = (String[]) values; String[] xy = strs[0].split(","); p.x = Integer.parseInt(xy[0]); p.y = Integer.parseInt(xy[1]); return p; } @SuppressWarnings("unchecked") @Override public String convertToString(Map context, Object o) { // TODO Auto-generated method stub return o.toString(); } }
//注册资源文件——xwork-conversion.properties java.awt.Point=com.bjsxt.converter.MyPointConverter