1. 程式人生 > >struts2-01:作用域傳值

struts2-01:作用域傳值

傳值 作用 頁面 PE return UC ret user IT

方式一、使用ServletActionContext(耦合度高,不建議使用)

public String login(){
    ServletActionContext.getRequest().getSession().setAttribute("user","王彬");
    return "success";
}

 

Struts.xml

<action name="login" class="cn.xcq.entity.Action1" method="login">
    <result>/success.jsp</result>
</action>

 

Success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> <h1>成功頁面</h1> ${sessionScope.user} </body> </html>

方式二、實現接口

這個案例使用session作用域,所以實現SessionAware接口

Struts2底層將作用域都封裝成了Map。

public class Action1 implements SessionAware { //聲明一個Map private Map<String, Object> session; //使用session需 實現sessionaware接口 //requesr RequestAware接口。。。。 public String login(){ session.put("user","程高升"); return "success"; } //重寫SessionAware的setSession方法,將聲明的session賦值給它 @Override
public void setSession(Map<String, Object> map) { this.session=map; } } Success.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> <h1>成功頁面</h1> ${sessionScope.user} </body> </html>

方式三、ActionContext

//方式三
 public String login(){

//session
     Map<String, Object> session = ActionContext.getContext().getSession();
     session.put("user","林帥");

//request
     Map<String, Object> request =(Map<String, Object>) ActionContext.getContext().get("request");
     request.put("name","程高升");
     return "success";
 }

struts2-01:作用域傳值