Struts2中复合类的使用
我们以添加一个类中的属性来举例
1. 首先封装一个Province类
2. 注册provinceAction.java来处理从jsp页面传过来的值,就是在控制台输出传过来的值
3. 配置struts.xml文件,用来接收从jsp页面传过来的值
(1) Jsp页面
<form action="${pageContext.request.contextPath}/pro/add.action" method="get">
省的名称:<input type="text" name="province.name"/><br/><!--这里的name-->
<input type="submit" value="确定"/>
</form>
我们明显的可以看到input中的name和以前不同,这样用来指定name是province下的属性,在aciton中接收的时候只要声明Province这个类就可以了,但是声明的类的对象必须是province,name会自动的封装过去。
在复合类中最重要的就是name的设定和接受参数时类的对象的设定。
(2)在struts.xml中设置
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="pro" namespace="/pro" extends="struts-default">
<action name="add" class="cn.csdn.hr.action.ProvinceAction"
method="add">
<result>../list.jsp</result>
</action>
</package>
</struts>
(3)Struts.xml是用来接收jsp页面传过来的值,并执行add方法
ProvinceAction类
package cn.csdn.hr.action;
import cn.csdn.hr.domain.Province;
import com.opensymphony.xwork2.ActionSupport;
public class ProvinceAction extends ActionSupport {
/**
* 复合类型,是一个自动装箱的过程,当传个类的时候,在input中 name设的是Province中的属性
*/
private static final long serialVersionUID = 1L;
private Province province;
public Province getProvince() {
return province;
}
public void setProvince(Province province) {
this.province = province;
}
public String add(){
System.out.println("你添加的省的名称是:"+province.getName());
return SUCCESS;
}
}
要注意当再次使用类中的属性的时候用get方法去调用,因为已经封装到了Province类中