`
awfrun
  • 浏览: 82056 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts2 Access WebElements

阅读更多

下面介绍4种访问request,session,application的方法:

第一种:依赖于容器

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.Validations;

public class LoginAction1 extends ActionSupport{
	
	private Map request;
	private Map session;
	private Map application;
	
	public LoginAction1() {
		request = (Map)ActionContext.getContext().get("request");
		session = ActionContext.getContext().getSession();
		application = ActionContext.getContext().getApplication();
		
	}

	@Override
	public String execute() throws Exception {
		
		request.put("r1", "r1_v");
		session.put("s1", "s1_v");
		session.put("s2", "s2_v");
		application.put("a1", "a1_v");
		
		return SUCCESS;
	}
	

	
	
	

}

 第二种:IOC (一般开发用这种较多)

import java.util.Map;

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 LoginAction2 extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
	
	private Map<String,Object> request;
	private Map<String,Object> session;
	private Map<String,Object> application;
	
	@Override
	public String execute() throws Exception {
		request.put("r1", "r11");
		session.put("s1", "s11");
		application.put("a1", "a11");
		
		return SUCCESS;
	}

	@Override
	public void setRequest(Map<String, Object> arg0) {
		request = arg0;
		
	}

	@Override
	public void setSession(Map<String, Object> arg0) {
		session = arg0;
		
	}

	@Override
	public void setApplication(Map<String, Object> arg0) {
		application = arg0;
		
	}
	
	
	

}

 

第三种:依赖于容器(原始)

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction3 extends ActionSupport {

	private HttpServletRequest request;
	private HttpSession session;
	private ServletContext application;
	
	public LoginAction3(){
		request = ServletActionContext.getRequest();
		session = request.getSession();
		application = session.getServletContext();
	}

	@Override
	public String execute() throws Exception {
		request.setAttribute("r1", "r111");
		session.setAttribute("s1", "s111");
		application.setAttribute("a1", "a111");
		return SUCCESS;
	}
	
	
	
	
}

 第四种:也是IOC的

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction4 extends ActionSupport implements ServletRequestAware{

	
	private HttpServletRequest request;
	private HttpSession session;
	private ServletContext application;
	
	
	
	@Override
	public String execute() throws Exception {
		
		request.setAttribute("r1", "r1111");
		session.setAttribute("s1", "s1111");
		application.setAttribute("a1", "a1111");
		return SUCCESS; 
	}



	@Override
	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
		this.session =  request.getSession();
		this.application = session.getServletContext();
		
	}



	
	
	

}

 

访问:

<s:property value="#request.r1"/> | <%=request.getAttribute("r1") %> <br/>
<s:property value="#session.s1"/> | <%=session.getAttribute("s1") %> <br/>
<s:property value="#application.a1"/> | <%=application.getAttribute("a1") %> <br/>

<s:property value="#attr.r1"/> 这种是自动搜索的,建议用上面那种精确的

 

<s:debug></s:debug>

 

对于为什么要用#来访问,你可以打开 <s:debug></s:debug>里面有说明:

Stack Context

These items are available using the #key notation

 

 

1
1
分享到:
评论

相关推荐

    struts2+JSP

    4. **数据库集成**:在描述中提到的MySQL,Struts2可以通过DAO(Data Access Object)模式与数据库交互,实现数据的增删改查。 结合Struts2和JSP,我们可以创建一个简单的界面应用程序,如用户登录、注册、数据展示...

    Jsp和struts框架实现员工管理系统

    在Struts中,可以使用DAO(Data Access Object)模式封装数据库操作,以保持业务逻辑和数据访问层的解耦。 **文件名称列表解析** 由于提供的文件名称列表只有一个"Staffmessage",这可能指的是系统中处理员工消息...

    Jsp+JavaBean+Struts1.2+MySQL5.0购物网

    该项目采用三层架构:表现层(Presentation Layer,JSP)、业务逻辑层(Business Logic Layer,JavaBean和Struts Actions)和数据访问层(Data Access Layer,MySQL)。表现层负责与用户交互,业务逻辑层处理业务...

    外文翻译 stus MVC

    Struts can help you control change in your Web project and promote specialization. Even if you never implement a system with Struts, you may get some ideas for your future servlets and JSP page ...

    Servlets和JSP核心技术 卷2(英文版) 第二部分

    The Elements of web.xml Section 2.4. Assigning Names and Custom URLs Section 2.5. Disabling the Invoker Servlet Section 2.6. Initializing and Preloading Servlets and JSP Pages Section 2.7. ...

    Servlets和JSP核心技术 卷2(英文版) 第一部分

    The Elements of web.xml Section 2.4. Assigning Names and Custom URLs Section 2.5. Disabling the Invoker Servlet Section 2.6. Initializing and Preloading Servlets and JSP Pages Section 2.7. ...

    jsp+strut写的网上书店

    2. **Struts配置**:项目中的struts-config.xml文件是Struts框架的核心配置文件,定义了ActionMapping、ActionForm和Action的映射关系,以及数据源和拦截器等配置。 3. **JSP页面**:JSP页面作为视图,通常包含HTML...

    JSP课程设计(JSP+MVC2)

    JSP的核心组件包括指令(directives)、脚本元素(scripting elements)、动作(actions)等,这些元素提供了处理数据和控制流程的能力。 **二、MVC2模式详解** MVC模式是软件工程中的设计模式之一,它将应用程序...

    jsp 网上购物系统

    2. **配置文件**:如struts-config.xml、web.xml等,定义了应用的配置和部署信息。 3. **数据库脚本**:SQL文件,用于创建和初始化数据库结构。 4. **资源文件**:如图片、CSS样式表、JavaScript文件等,用于页面的...

    Ebooks For Dummies Collection

    Jakarta Struts For Dummies.pdf Java AIO Desk Reference 2nd Ed For Dummies.chm Java For Dummies 4th Ed Dec 2006.pdf ** Java Game Programming For Dummies.pdf Javascript 4th Ed For Dummies.pdf Javascript...

    05_java网站_Java实例网站_java_wonderfullrk_

    2. **JSP元素**:包括指令(Directives)、脚本元素(Scripting Elements)和动作(Actions),它们分别用于页面配置、声明变量和控制页面行为。 3. **MVC(Model-View-Controller)模式**:这是一种设计模式,常...

    Spring API

    15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.2. ActionSupport Classes 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制...

    Spring中文帮助文档

    15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.2. ActionSupport Classes 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制...

    JSP基于BS结构下的邮件系统设计开发(源代码+论文).zip

    JSP的核心概念包括指令(Directives)、脚本元素(Scripting Elements)和动作(Actions)。在这个邮件系统中,JSP将负责处理用户请求,展示界面,以及与后端JavaBean或Servlet交互。 2. Servlet技术:虽然JSP可以...

    基于ssm+mysql的大创项目申报管理系统源码数据库论文.docx

    The SSM framework, which stands for Spring, Struts, and MyBatis, is a widely used architectural pattern in Java web development. Spring provides dependency injection and manages the lifecycle of ...

    JSP从入门到精通源代码

    基本结构包括JSP指令(Directives)、脚本元素(Scripting Elements)和动作元素(Actions)。例如,`&lt;jsp:include&gt;`用于动态包含其他页面,`&lt;% %&gt;`用于编写Java表达式,`! %&gt;`定义Java变量或方法。 **2. JSP生命...

    Java自学路线[参考].pdf

    2. Tomcat:一个开源的Web服务器和Servlet容器,用于在Java环境中部署Java Web应用程序。 3. servlet与JavaBean:servlet是一个用于扩展服务器功能的Java类,而JavaBean是一种特殊的Java类,设计成可重用、可移植,...

    JSP网站开发典型模块与实例精讲源码

    JSP中的基本元素包括指令(Directives)、脚本元素(Scripting Elements)和动作(Actions)。指令如page、include和taglib,用于设置整个页面的属性或包含其他文件。脚本元素包括声明(Declarations)、脚本...

    毕业论文weixin074儿童预防接种预约微信小程序+springboot论文.doc

    The choice of the Spring-Struts-MyBatis (SSM) framework for the backend development is strategic, as it offers robustness, scalability, and efficient data handling. SSM is a popular Java-based ...

Global site tag (gtag.js) - Google Analytics