六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 55|回复: 0

Struts2(18):Struts2深入探索续2

[复制链接]

升级  54%

37

主题

37

主题

37

主题

秀才

Rank: 2

积分
131
 楼主| 发表于 2013-2-6 08:44:38 | 显示全部楼层 |阅读模式
Struts2与Servlet是低耦合的,这可使项目不依赖于具体的容器。如可方便做单元测试。
1,如需在struts2中使用servlet,可通过com.opensymphony.xwork2.ActionContext类来调用。
此类中有很多方法,可以取得session,application等参数。
2,也可以通过实现ServletRequestAware接口来实现:
首先定义一个变量request,在实现接口的setServletRequest方法中,为此变量赋值(由框架实现),这样就可以在此类中使用request了。
package com.test.action;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.interceptor.ServletRequestAware;public class RegisterAction3 implements ServletRequestAware {private HttpServletRequest request;public void setServletRequest(HttpServletRequest request) {this.request = request;}} struts2相应的还提供了ServletResponseAware,ServletContextAware。
3,还可以使用org.apache.struts2.ServletActionContext类
这个类中提供了很多静态方法,可以取得request,response等。
推荐使用第一种方法,耦合度最底,最不推荐第二种方法,繁琐。
 
 
4,通过JSP页面调用指定action中的方法,除了前面章节介绍的在struts.xml文件中配置外,还可以在form中配置指定,如:
<s:form action ="register2!someMethod.action"> someMethod即对应的是register2这个action中的方法。
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表