struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式
Posted 愤怒的绿萝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式相关的知识,希望对你有一定的参考价值。
方法一:通过ActionContext访问SerlvetAPI,这种方式没有侵入性
Action类部分代码
import com.opensymphony.xwork2.ActionContext; public String execute() throws Exception { if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){ //获取Map方式的request //ActionContext.getContext().put("msg", "登录成功"); //获取Map方式的Session //ActionContext.getContext().getSession().put("msg", "登录成功"); //获取Map方式的Application ActionContext.getContext().getApplication().put("msg", "登录成功"); return "success"; } return "error"; }
方法二:通过ServletActionContext访问SerlvetAPI,这种方式没有侵入性,建议使用这种方式
Action类部分代码
import org.apache.struts2.ServletActionContext; public String execute() throws Exception { if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){ ServletActionContext.getRequest().setAttribute("msg", "登录成功"); ServletActionContext.getResponse(); ServletActionContext.getPageContext().setAttribute("msg", "登录成功"); ServletActionContext.getRequest().getSession().setAttribute("msg", "登录成功"); return "success"; } return "error"; }
方法三:实现装配接口,实现方法(ServletRequestAware,ServletResponseAware)
Action类
package com.djoker.struts2; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; public class LoginAction implements ServletRequestAware,ServletResponseAware{ private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } private HttpServletRequest request; private HttpServletResponse response; public String execute() throws Exception { if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){ this.request.setAttribute("msg", "登录成功"); return "success"; } return "error"; } @Override public void setServletResponse(HttpServletResponse response) { this.response = response; } @Override public void setServletRequest(HttpServletRequest request) { this.request = request; } }
以上是关于struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式的主要内容,如果未能解决你的问题,请参考以下文章