struts2 action間值傳遞

比如 ListAction裏的數據要傳到TestAction裏,這裏提供三種方法,
一,通過request,session傳遞,不推薦(至於爲什麼,我也不清楚)
二, 直接傳遞。
  在配置文件裏設置返回類型爲chain後,可以在下一個action裏直接使用。
  比如
<action name="listAction" class="com.topsoft.web.action.aaf.ListAction">
<result name="success" type="chain">testAction</result>
</action>
<action name="testAction" class="com.topsoft.web.action.aaf.TestAction">
<result name="success" type="freemarker">/page/frame/login.ftl</result>
</action>
在testAction裏可以使用set 和 get方法取得值,
這其實是chain攔截器起的作用,struts2默認提供default-stack攔截器站,裏面包含很多攔截器,其中有chain.(struts-core.jar包裏有個struts-default.xml,裏面有詳細記錄)
二,保存到ognlvaluestack裏,讓所有action共用:
1,在struts.xml裏配置轉向
<action name="listAction" class="com.topsoft.web.action.aaf.ListAction">
<result name="success" type="chain">testAction</result>
</action>
<action name="testAction" class="com.topsoft.web.action.aaf.TestAction">
<result name="success" type="freemarker">/page/frame/login.ftl</result>
</action>
2,在ListAction裏繼承ModerDriven接口,並實現getModel()方法 在該方法中設置你要傳遞的數據
  public class ListAction extends TopsofAction implements ModelDriven{
private String id="test";
public String execute() throws Exception {
return SUCCESS;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Object getModel(){
return id;
}
  }
3,在TestAction裏使用setModel()方法取得數據
  public class TestAction extends TopsofAction {
private String id;
public String execute() throws Exception {
return SUCCESS;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public void setModel(Object id){
this.id = id.toString();
}
}
 
發佈了3 篇原創文章 · 獲贊 0 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章