`

struts2---以解耦合方式访问servletAPI

阅读更多
第一种:以ActionContext类访问ServletAPI
示例代码: [color=red](注:request,sesssion,application用MaP集合存)
[/color]
public class UserAction extends ActionSupport {
	private String username;
	private String password;
	private Map<String ,Object> request;
	private Map<String ,Object> session;
	private Map<String ,Object> application;
	public String login(){
		//获取对象
		ActionContext ac=ActionContext.getContext();
		[color=red][size=large]request=(Map<String, Object>) ac.get("request");[/size][/color]//request对象必须用参数“request”获取
		session=ac.getSession();
		application=ac.getApplication();
		//保存数据
		request.put("loginCity", 北京");
		session.put("username", username);
		application.put("online", "在线人数:XXX");
		
		return SUCCESS;
	}
	//setter/getter方法省略
	
}

页面:用<s:property value="#request.loginCity"/> 抬头导入struts标签库
二。使用Ioc方式
使用哪个对象,则实现哪个接口,实现接口后实现接口的方法,把参数的值赋给成员变量
示例:action代码:
public class UserAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
	private String username;
	private String password;
	private Map<String ,Object> request;
	private Map<String ,Object> session;
	private Map<String ,Object> application;
	public String login(){
		//保存数据
		request.put("loginCity", 北京");
		session.put("username", username);
		application.put("online", "在线人数:XXX");
		
		return SUCCESS;
	}
	
	public void setRequest(Map<String, Object> request) {
		this.request=request;
		
	}
	public void setSession(Map<String, Object> session) {
		this.session=session;
		
	}
	public void setApplication(Map<String, Object> application) {
		this.application=application;
		
	}
	//setter/getter方法
	
}

页面如第一方法所示
0
2
分享到:
评论

相关推荐

    详解Struts2中Action访问Servlet API的几种方法

    Struts2的Action并未直接与任何Servlet API耦合,这是Struts2的一个改良之处,因为Action类不再与Servlet API耦合,能更轻松的测试该Action。但如何访问?  Web应用中通常需要访问的Servlet API就是...

    struts2.1.8学习

    3、Struts1 与ServletAPI、strutsAPI 紧密耦合;Struts1 则不 4、Struts2 利用拦截器进行AOP 编程,实现如权限拦截功能 5、Struts2 提供了类型转换器 6、Struts2 提供多种表现层技术,如JSP/Freemarker/Velocity 等 ...

    struts项目学习笔记

    Action的execute 默认方法不再与Servlet API耦合,更易测试 支持更多视图技术(JSP(转译java文件,编译成class文件,才可以运行)、(模板技术,html,把数据和模板html一起以流方式输出)FreeMarker、Velocity) 基于AOP...

    struts2学习笔记

    Struts2环境搭建 Struts2类型转换 Struts2输入校验 拦截器 文件的上传与下载 Struts2的国际化 深入探析 struts2与servlet API耦合方法

    javaweb学习知识点

    1 &gt; 在软件设计上Struts2没有像struts1那样跟Servlet API和struts API有着紧密的耦合,Struts2的应用可以不依赖于Servlet API和struts API。 Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。

    struts 入门ppt

    其次,Struts1与Servlet API的严重耦合,使应用难于测试。最后,Struts1代码严重依赖于Struts1 API,属于侵入性框架。 从目前的技术层面上看,出现了许多与Struts1竞争的视图层框架,比如JSF、Tapestry和 Spring ...

    外文翻译 stus MVC

    Struts is a set of cooperating classes, servlets, and JSP tags that make up a reusable MVC 2 design. This definition implies that Struts is a framework, rather than a library, but Struts also contains...

    SSH架构优缺点分析.rar

    与serlvetAPI严重耦合..无法摆脱容器 action与web层耦合.不方便测试 标准struts的action是非线程安全(很多简历上写着"精通Struts"的高手们都忽视的问题) 不熟悉: struts标签库没怎么用过(常用jstl) 国际化只...

    java面试题

    Struts2以核心控制器FilterDispatcher为基础,包含了框架内部的控制流程和处理机制。 Hibernate工作原理,Hibernate数据持久化? 答:Hibernate工作原理: 1:读取并解析映射信息,创建SessionFactory 2:打开...

    整理后java开发全套达内学习笔记(含练习)

    int 32bit, -2^31~2^31-1 (2147483648,20亿,10位有效数字) long 64bit, -2^63~2^63-1 (900亿亿,20位有效数字) float 32bit, 9位有效数字,含小数(四舍五入)(小数点算一位,正负号不算) double 64bit, 18位...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

     国内知名的高端IT技术作家,已出版《Spring 2.0宝典》、《基于J2EE的Ajax宝典》、《轻量级J2EE企业应用实战》、《Struts 2权威指南》、《Ruby On Rails敏捷开发最佳实践》等著作。 目录: 第0章 学习Java...

Global site tag (gtag.js) - Google Analytics