### Liferay 6 Struts2 开发文档 #### 一、概述 在Liferay 6中集成Struts2框架进行Portlet开发是一项重要的技术实践。本文档将详细讲解如何使用Struts2框架来构建功能丰富的Portlet应用,并通过具体实例进行深入分析。 #### 二、环境搭建与依赖 为了确保能够顺利进行开发工作,我们需要准备好以下环境: - **Liferay版本**:6.0.4 - **开发模式**:普通插件模式 - **Struts版本**:2.1.8.1 - **依赖Jar包**:为了使Struts2框架能够在Liferay环境中正常运行,我们需要引入一系列相关的Jar包,具体包括: - `antlr-2.7.2.jar`:用于解析ANTLR语法。 - `commons-fileupload-1.2.1.jar`:支持文件上传功能。 - `freemarker-2.3.15.jar`:提供模板引擎支持。 - `ognl-2.7.3.jar`:实现对象图导航语言(OGNL),Struts2表达式语言的核心。 - `struts2-core-2.1.8.1.jar`:Struts2核心库。 - `struts2-portlet-plugin-2.1.8.1.jar`:Struts2 Portlet插件,实现与Portlet环境的集成。 - `xwork-core-2.1.6.jar`:XWork核心库,为Struts2提供底层支持。 #### 三、项目结构与配置 项目的目录结构对于开发流程至关重要。一个典型的Struts2 Portlet项目结构通常包含以下几个部分: 1. **src/main/java**:存放Java源代码文件。 2. **src/main/resources**:存放资源文件,如配置文件等。 3. **src/main/webapp/WEB-INF/classes**:存放其他类文件或配置文件。 4. **src/main/webapp/WEB-INF/lib**:存放所需的Jar包。 5. **src/main/webapp/WEB-INF/portlet.xml**:Portlet的核心配置文件。 #### 四、Portlet.xml 配置详解 Portlet.xml文件是Portlet开发中的关键配置文件之一,它定义了Portlet的基本属性、行为和外观等信息。下面是对一个典型配置文件的具体分析: ```xml <portlet> <portlet-name>StrutsPortlet</portlet-name> <display-name>StrutsTestPortlet</display-name> <!-- 指定Portlet的类 --> <portlet-class>org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher</portlet-class> <!-- 配置Struts2视图命名空间 --> <init-param> <name>viewNamespace</name> <value>/strutsDemoView</value> </init-param> <!-- 默认视图动作 --> <init-param> <name>defaultViewAction</name> <value>index</value> </init-param> <!-- 配置Struts2编辑命名空间 --> <init-param> <name>editNamespace</name> <value>/strutsDemoEdit</value> </init-param> <!-- 默认编辑动作 --> <init-param> <name>defaultEditAction</name> <value>index</value> </init-param> <!-- 缓存过期时间 --> <expiration-cache>0</expiration-cache> <!-- 支持的MIME类型及portlet模式 --> <supports> <mime-type>text/html</mime-type> <portlet-mode>view</portlet-mode> <portlet-mode>edit</portlet-mode> </supports> <!-- Portlet信息 --> <portlet-info> <title>MyStrutsPortletportlet</title> <short-title>SP</short-title> <keywords>struts,portlet</keywords> </portlet-info> </portlet> ``` - **portlet-name**:定义Portlet的名称。 - **display-name**:显示给用户的Portlet名称。 - **portlet-class**:指定Portlet实现类,这里是使用Struts2提供的Jsr168Dispatcher。 - **init-param**:初始化参数,用于配置Struts2的命名空间及默认动作。 - **expiration-cache**:设置缓存有效期。 - **supports**:定义支持的MIME类型和portlet模式。 - **portlet-info**:提供关于Portlet的额外信息,如标题、简短名称和关键字等。 #### 五、参考与示例 为了更好地理解如何在Liferay 6中使用Struts2开发Portlet,我们可以参考Struts2自带的portlet示例`struts2-portlet-2.1.8.1.war`。该示例位于Struts2解压包下的`apps`目录内,它是基于Pluto (Apache的Portal实现) 的例子,虽然它是为Pluto设计的,但是其基本原理同样适用于Liferay 6。 #### 六、总结 本篇文档介绍了在Liferay 6中利用Struts2框架进行Portlet开发的关键步骤和配置要点。通过对环境搭建、依赖管理、项目结构以及核心配置文件的详细分析,开发者可以快速掌握如何构建高效、可扩展的Portlet应用。此外,通过参考提供的示例代码,开发者还可以更深入地了解具体的实现细节和技术要点。希望本文档能为Liferay 6的Struts2 Portlet开发提供有价值的指导和支持。
剩余6页未读,继续阅读
- hhy19682011-09-20This is just a small article. It's not a documentation. So so.
- 粉丝: 74
- 资源: 134
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助