Struts2 Action類的創建以及參數傳遞以及接收


一、Struts中Action得創建方式

1,直接創建一個簡單的Action類

添加Struts.xml,配置轉發方法返回轉發的頁面。

 

 

2,實現一個Action類

 

Strust.xml配置對應的Url轉發映射。

 

3,繼承一個ActionSupport類

 

struts.xml配置文件的內容如下:

二、Struts中Action獲取Servlet中的API,並通過servlet的域對象進行存儲值操作

1,通過ActionContext上下文對象來獲取request域,session域,application域

 

struts.xml配置文件配置內容:

 

 

轉發頁面內容:

 

Action獲取Servlet中的API,並通過servlet的域對象進行存儲值操作

2,通過servletActionContext上下文對象來獲取request域,session域,application域

 

strust.xml配置文件

 

轉發頁面

3,Action類通過實現ServletRequestAware, ServletContextAware上下文對象來獲取request域,session域,application域

Struts.xml 配置文件如下:

jsp轉發配置頁面

 

 

三、Struts中Action中獲取頁面傳遞過來的參數的三種方式

1,通過Action類的屬性來獲取相應的參數值

package com.java.test.param.Action;
import java.util.Date;
public class ParamAction {
private String name;
private Integer age;
private Date birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String test() {
System.out.println("name:"+name);
System.out.println("age:"+age);
System.out.println("birthday:"+birthday);
return "test";
}
}

 struts.xml配置頁面

form.jsp

welcome.jsp

2,通過Action類的對象屬性來獲取相應的參數值

#user.java
package com.java.test.param.Action;

import java.util.Date;

public class User {

private String name;
private Integer age;
private Date birthday;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}



}

#Param1Action .java
package com.java.test.param.Action;

public class Param1Action {
private User user;

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public String test() {
return "test";
}



}

strust.xml配置文件

 

form1.jsp

welcome1.jsp

 

3,通過實現ModelDriven類的來獲取相應的參數值

 

#Param3.java
package com.java.test.param.Action;

import com.opensymphony.xwork2.ModelDriven;

public class Param3 implements ModelDriven{
private User user = new User();

@Override
public User getModel() {
// TODO Auto-generated method stub return user;
}

public String test() {
return "test";
}


}

 struts.xml

form2.jsp

welcome2.jsp

 

四、Struts中如何傳遞list,map參數

 

#Param4Action .java
package com.java.test.param.Action;

import java.util.List;
import java.util.Map;

public class Param4Action {
private List list;
private Map<String,String> map;

public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}

public String test() {
return "test";
}

}

form3.jsp

welcome3.jsp

 

 

總結:1,創建Action有三種方式,每一種都有對應的好處,建議使用第二種或者第三種,這種方式能夠繼承或者實現父類,從而可以復用父類的一些東西。

            2,獲取servlet Api,建議使用第二種方式,和servlet的方式類似。但struts中不建議這樣來獲取參數或設置對象域。

            3, Action類中接收參數的三種方式,第一種的話,很零散,操作數據庫還得進行封裝類,第二種方式,可以直接封裝好類,這種方式可以,第三種,這種方式也可以,就是               每次只能實現一個bean類,從而只能獲取一個bean。多個bean的話不太好解決。

            最后一個就是傳遞list參數和map參數,list就是頁面上得有多個對應的list,map必須指定對應的key,不然不知道是哪一個key需要存值。

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM