![](/img/trans.png)
[英]How to pass a form variable from one action to another action class in Struts 1.2
[英]How to pass Action class variable value into another Action class in Struts 2
如何將Action
class 變量值傳遞給 Struts 2 中的另一個Action
class?
我想在另一個操作 class 中使用在查詢變量中檢索到的那個。
動作可以通過不同的方式相互通信,它們可以在不同的線程中運行並且不共享動作上下文。 最流行的方式是通過請求或在 URL 中傳遞參數,XWork 轉換器將在 OGNL 的幫助下將它們轉換為動作屬性。
但我認為LoginAction
的目的是通過用戶憑據(email, username, password)
對用戶進行身份驗證,並將此信息保存在 session map 中。這是一個可以在操作之間共享的公共資源。 為了讓 session map 可用於操作和其他操作,他們應該實現SessionAware
。 它將幫助 Struts 將 session map 注入到 action 屬性中。 如果您想在應用程序的許多操作中使用 session,那么為了不在每個操作中實現此接口,您可以創建一個基本操作。
public class BaseAction extends ActionSupport implements SessionAware {
private Map<String, Object> session;
public setSession(Map<String, Object> session){
this.session = session;
}
public Map<String, Object> getSession(){
return session;
}
}
然后動作將擴展基本動作以獲得 session 兼容性。
public class LoginAction extends BaseAction {
@Override
public String execute() throws Exception {
User user = getUserService().findBy(username, email, password);
getSession().put("user", user);
return SUCCESS;
}
}
現在 session 中的用戶,您可以從其他操作中獲得 session,或者從session
map 中獲得 JSP 和user
object。
public class InboxAction extends BaseAction {
@Override
public String execute() throws Exception {
User user = (User) getSession().get("user");
return SUCCESS;
}
}
如果您想將所有值發布到另一個操作,請使用“鏈”,否則使用重定向操作並指定參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.