package cn.happy.day02servletapi;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.util.ValueStack;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.util.ServletContextAware;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Map;
/**
* Created by 张晓宇 on 2017/10/22.
*/
public class LoginAction implements Action,ServletRequestAware,ServletContextAware{
private HttpServletRequest request;
private ServletContext servletContext;
public String execute() throws Exception {
ActionContext context=ActionContext.getContext();
Map<String, Object> map = context.getSession();
//方法一
/* map.put("uname","周三");*/
//方法二
/* //Session
HttpSession session = ServletActionContext.getRequest().getSession();
session.setAttribute("uname","admin_session");
//Request
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("uname","admin_request");
//ServletContext application
ServletContext servletContext = ServletActionContext.getServletContext();
servletContext.setAttribute("uname","admin_content");*/
//方法三:
/*HttpSession session = request.getSession();
session.setAttribute("uname","张三");*/
//方法四 .五:
//放入值栈
/* map.put("uname","周三");
ValueStack valueStack = ActionContext.getContext().getValueStack();
valueStack.push(map);
*/
//方法五:
HttpServletRequest request = ServletActionContext.getRequest();
ValueStack vs= (ValueStack)request.getAttribute("struts.valueStack");
vs.push(map);
return SUCCESS;
}
public void setServletRequest(HttpServletRequest httpServletRequest) {
this.request=httpServletRequest;
}
public void setServletContext(ServletContext servletContext) {
this.servletContext=servletContext;
}
}
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>Welcome</h2>
<!--方法一:-->
<%--<input type="text" value="<c:out value="${uname}" />" />--%>
<!--方法二:-->
<%--<s:property value="#session.uname"></s:property>
<s:property value="#request.uname"></s:property>
<s:property value="#application.uname"></s:property>--%>
<!--方法三:-->
<%--<s:property value="#session.uname"></s:property>--%>
<!--方法四.五:-->
<s:debug/>
<s:property value="#session.uname"></s:property>
<!--或-->
<s:property value="uname"></s:property>
</body>
</html>