Struts2中复合类的使用

 

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类中

 

你可能感兴趣的:(Struts2中复合类的使用)