博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2框架中的IoC
阅读量:6301 次
发布时间:2019-06-22

本文共 3428 字,大约阅读时间需要 11 分钟。

  hot3.png

学习三大框架,对spring中的IoC和DI并不陌生,但是对struts2中的IoC你又知道多少呢!

现将学习过程的一点小结拿来与大家分享!

在struts2的Action中如何取得request ,session,application呢!

(一)取得Map类型的request,session,application

    实现RequestAware,SessionAware,Application接口,通过IoC取得Map类型。示例如下:

package com.bjsxt.action;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.interceptor.ApplicationAware;import org.apache.struts2.interceptor.RequestAware;import org.apache.struts2.interceptor.SessionAware;import com.opensymphony.xwork2.ActionSupport;public class LoginAction1 extends ActionSupport implements RequestAware,		SessionAware, ApplicationAware {	// 声明username属性	private String username;	// 声明request属性	private Map
request; // 声明session属性 private Map
session; // 声明 application属性 private Map
application; // 重写execute方法,这里并没有使用ServletActionContext.getRequest()来获得request对象,这是因为实现了ServletRequestAware public String execute() throws Exception { request.put("req", "i am request arrt!!"); session.put("session", "i am session attr"); application.put("application", "i am application"); return SUCCESS; } // Username的get方法 public String getUsername() { return username; } // Username的set方法 public void setUsername(String username) { this.username = username; } // 重写 RequestAware中的方法 @Override public void setRequest(Map
request) { // TODO Auto-generated method stub this.request = request; } // 重写 SessionAware中的方法 @Override public void setSession(Map
session) { // TODO Auto-generated method stub this.session = session; } // 重写 ApplicationAware中的方法 @Override public void setApplication(Map
application) { // TODO Auto-generated method stub this.application = application; }}

   

(二)取得真实类型的HttpServletRequest,HttpSession,ServletContext

    实现ServletRequestAware,ServletContextAware接口,通过IoC取得真实类型。示例如下:

package com.bjsxt.action;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.util.ServletContextAware;import com.opensymphony.xwork2.ActionSupport;public class LoginAction1 extends ActionSupport implements ServletRequestAware,ServletContextAware {	//声明username属性	private String username;	//声明request属性	HttpServletRequest request;	//声明session属性	HttpSession session;	//声明 application属性	ServletContext application;	// 重写execute方法,这里并没有使用ServletActionContext.getRequest()来获得request对象,这是因为实现了ServletRequestAware	public String execute() throws Exception {		request.setAttribute("req", "i am request arrt!!");		request.getSession().setAttribute("session", "i am session attr");		application.setAttribute("application", "i am application");		return SUCCESS;	}	//Username的get方法	public String getUsername() {		return username;	}	//Username的set方法	public void setUsername(String username) {		this.username = username;	}	//重写ServletContext中的方法	@Override	public void setServletContext(ServletContext application) {		// TODO Auto-generated method stub		this.application = application;	}	//重写ServletRequest中的方法	@Override	public void setServletRequest(HttpServletRequest request) {		// TODO Auto-generated method stub		this.request = request;	}}

 

转载于:https://my.oschina.net/dph/blog/80546

你可能感兴趣的文章
[USB-Blaster] Error (209040): Can't access JTAG chain
查看>>
TreeSet的用法
查看>>
防HTTP慢速攻击的nginx安全配置
查看>>
深入理解PHP内核(十四)类的成员变量及方法
查看>>
Spring Boot2.0+中,自定义配置类扩展springMVC的功能
查看>>
参与博客编辑器改版,我的礼物 感谢51cto
查看>>
JavaWeb笔记——JSTL标签
查看>>
Eclipse插件大全 挑选最牛的TOP30
查看>>
一些实用性的总结与纠正
查看>>
Kubernetes概念
查看>>
vCenter Server Web Client 乱码
查看>>
java-Spring jdbcTemplete datasource相关代码示例
查看>>
如何做一个合格的运维
查看>>
vim编辑器(上)
查看>>
Subversion 使用手册(开发人员)
查看>>
树链剖分 月下毛景树
查看>>
颓废了1年+,今天开始勤(tui)奋(fei)啦
查看>>
windows下批量修改文件(或文件夹)权限或所有者
查看>>
IP地址的分类
查看>>
我的友情链接
查看>>