Struts 1.x
提供一个新的 PlugIn
接口,可以动态增减 ActionServlet
的功能。如果需要在应用启动或关闭时完成某些操作,可以创建自己的 PlugIn
类。
1. 实现自己的 PlugIn
类
实现 PlugIn
接口必须实现如下两个方法。
- void destroy();
- void init(ActionServlet servlet,ModuleConfig config) throws ServletException;
应用启动时调用 init
方法,而应用关闭时则调用 destroy
方法。
e.g. SessionFactoryPlugIn
的实现类:
public class SessionFactoryPlugIn implements PlugIn {
//Hibernate的配置文件
private String configFile;
//应用关闭时,销毁资源
public void destroy() {
System.out.println("系统销毁SeesionFactory");
}
//应用启动时,完成SessionFactory的初始化
public void init(ActionServlet actionServlet,ModuleConfig config)
throws ServletException {
System.out.println("系统以 " + getConfigFile() + " 为配置文件初始化SessionFactory");
}
//获取PlugIn配置文件的方法
public String getConfigFile() {
return configFile;
}
//负责加载PlugIn配置属性的方法
public void SetConfigFile(String configFile) {
this.configFile = configFile;
}
}
在上面的 PlugIn
中,并没有真正初始化 SessionFactory
,仅在控制台打印出字符串来标识创建动作。另外,还提供了configFile
属性的 setter
和 getter
方法,这两个方法负责访问 PlugIn
元素的 configFile
属性。
2.
struts-config.xml 文件的配置
为了让 ActionServlet
知道要“
挂上”
这个 PlugIn
,您须如下设定:
<plug-in className="cn.janwer.xxxPlugIn">
<set-property property="xxx" value="abcde"/>
</plugin>
像Tiles、Validator
等都是利用这种方式来扩充 Struts
的功能。
3. 实践应用
在下面示例中,系统使用 Hibernate
作为持久层,在启动时创建 SessionFactory
实例,并将该 SessionFactory
存在 Application
,在应用关闭时销毁 SessionFactory
。
如下在启动时加载权限配置信息:
public class SqePlugIn implements PlugIn {
public void init(ActionServlet servlet, ModuleConfig config)
throws ServletException {
Cache cache = CacheFactory.getCache();
// 得到SessionFactory对象的实例,用于初始化Hibernate
SessionFactory sf = HibernateUtil.getSessionFactory();
try {
// 开始一个新的事物
sf.getCurrentSession().beginTransaction();
// 得到操作用户角色的DAO
RoleDAO dao = DAOFactory.getDao(RoleDAO.class);
// 得到所有的用户角色对象
List<Role> roles = dao.findAll();
// 缓存所有的用户角色信息
for (Role role : roles) {
cache.put(role.getName(), role);
}
// 关闭当前的事物
sf.getCurrentSession().getTransaction().commit();
}
catch (Throwable ex) {
ex.printStackTrace();
sf.getCurrentSession().getTransaction().rollback();
}
}
/**
* 销毁SessionFactory的实例。
*/
public void destroy() {
HibernateUtil.shutdown();
}
}
下面是配置信息:
<!-- 加载权限校验配置信息类 -->
<plug-in className="cn.janwer.struts.SqePlugIn"/>
如果您在某个 Action
中必须使用到“
挂上”
的资源,您可以由 Action
的 Field
成员 servlet
(ActionServlet
实例)
来取得 ServletContext
,并得到所须的资源,例如:
public ActionForward execute(ActionMapping mapping,
Actionform form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
.......
ServletContext context = servlet.getServletContext();
SomeService service =
(SomeService) context.getAttribute("service");
......
}
分享到:
相关推荐
这个压缩包"struts2.x所有包及配置文件"包含了Struts2框架的核心组件、扩展和配置文件,用于构建和管理Java web应用。 1. **核心组件**: - `struts2-core.jar`:这是Struts2框架的基础,包含了Action、Result、...
Struts2.x是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它在Struts1的基础上进行了很多改进和增强,旨在提供更高效、更灵活的Web应用程序开发。Struts2.x的主要目标是简化开发过程,提高代码可...
1. **struts2-core.jar**:这是Struts2框架的基础,包含了Action、Result、Interceptor等核心类和接口。这个jar文件提供了请求处理、控制器调度和视图渲染的基本功能。 2. **xwork-core.jar**:Struts2是基于XWork...
5. **整合Struts2和Spring**:在Struts2的配置文件中,使用Spring插件(struts2-spring-plugin)的`<spring:bean>`标签引入Spring管理的bean。 6. **实例化Action**:在Struts2的Action配置中,通过Spring插件的`...
Struts是Apache软件基金会下的一个开源项目,是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。...不过要注意,Struts 1.x已经较为老旧,现在更推荐使用Struts 2或Spring MVC等更新的框架。
1. **Struts2核心库**:这包含主要的框架类和接口,如`com.opensymphony.xwork2`和`org.apache.struts2`包,它们定义了Action、Result、Interceptor等关键概念。 2. **依赖的开源库**:Struts2依赖于许多开源库,如...
6. **插件支持**:Struts支持多种插件,如`struts-plugin-x.x.x.jar`,这些插件可以扩展框架的功能,如集成其他框架如Hibernate或Spring。 7. **配置文件**:在使用Struts时,开发者需要编写`struts-config.xml`或`...
- PlugIn在Struts启动时自动加载,可以通过实现`org.apache.struts.action.PlugIn`接口来创建自定义插件。 - 插件可以监听ActionServlet的生命周期事件,比如在初始化阶段进行配置加载,在销毁阶段进行资源释放。 ...
Struts2是一个非常著名的Java Web开发框架,由...通过理解和掌握这些知识点,开发者可以有效地使用Struts2.1.8构建Web应用,并能进行定制化开发和问题调试。结合Eclipse的源码关联,学习和工作效率将得到显著提升。
若需要与其他框架集成,例如Spring,还需要相应的-plugin JAR文件,如struts2-spring-plugin-2.x.x.jar。 在Struts2中,框架的启动不同于Struts1,不是通过Servlet,而是通过Filter启动。核心过滤器是`...
8. **struts2-spring-plugin-x.x.x.jar**:如果你的应用使用Spring框架,这个插件可以帮助整合Struts2和Spring,实现依赖注入和事务管理。 9. **commons-logging-x.x.x.jar**:提供日志记录服务的抽象层,Struts2...
本文将详细介绍Struts验证器Validator的使用,包括基础配置、自定义验证器的创建,以及如何在Maven项目中管理和使用Eclipse进行编译。 **一、Struts验证器Validator的基本概念** Struts Validator是Struts框架提供...
要使用`Convetion`插件,首先需要将`struts-convention-plugin-x.x.x.jar`文件添加到项目的`WEB-INF/lib`目录下。然后,插件会自动扫描指定的包(默认是`action`, `actions`, `struts`, `struts2`)内的所有Java类,...
Struts2是一个强大的Java web应用程序框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性、可扩展性极高的应用的解决方案。此压缩包文件"struts-2.2.3"包含了Struts2框架的源代码,这将...
Struts2.x系列是其一个特定的版本,提供了许多增强的功能和改进,以提升开发效率和应用的可维护性。在这个"struts2-例子"压缩包中,我们主要关注的是一个名为"struts2-blank"的项目,这是一个基础的、空白的Struts2...
尽管Struts 1.x本身不支持拦截器,但通过插件如Struts-Plugin可以实现类似的功能,拦截器是Struts 2中的一个重要特性,它们允许在Action执行前后执行额外的逻辑。 **国际化和本地化**: Struts提供了对多语言支持的...
在Java Web开发中,SSH(Struts2、Spring、Hibernate)是一个常见的开源框架组合,用于构建高效、可扩展的企业级应用程序。这三个框架分别是用于MVC(Model-View-Controller)架构的Struts2,用于依赖注入和事务管理...
Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,它在Web应用开发中被广泛使用。XWork是Struts2的核心库,为Struts2提供许多底层功能,如动作调度、类型转换和异常处理等。这次我们探讨...
- **基础类库**:构建Struts2应用需要的基础类库包括`struts2-core-2.x.x.jar`、`xwork-2.x.x.jar`、`ognl-2.6.x.jar`、`freemarker-2.3.x.jar`和`commons-logging-1.1.x.jar`。这些类库分别提供了框架的核心功能、...