这篇所说的Struts Portlet是在Ext环境下开发的,使用liferay里面集成的Struts 1.2
开发流程图
本文是基于以前的在Liferay IDE里面创建的ext环境开发。
准备工作
1、在ext-web目录下面创建如下目录/html/portlet/struts
2、在ext-impl/src下面创建包content,并在这个包下面创建文件Language-ext_zh_CN.properties
3、将tomcat/webapps/root/WEB-INF下面的liferay-display.xml文件copy到ext环境下面的WEB-INF目录下面。
配置Portlet:portlet-ext
在portlet-ext.xml里面写入如下内容
-
<
portlet
>
-
<
portlet-name
>
strutsdemo
</
portlet-name
>
-
<
display-name
>
strutsdemos
</
display-name
>
-
<
portlet-class
>
com.liferay.portlet.StrutsPortlet
</
portlet-class
>
-
<
init-param
>
-
<
name
>
view-action
</
name
>
-
<
value
>
/strutsportlet/demo
</
value
>
-
</
init-param
>
-
<
expiration-cache
>
0
</
expiration-cache
>
-
<
supports
>
-
<
mime-type
>
text/html
</
mime-type
>
-
</
supports
>
-
<
resource-bundle
>
com.liferay.portlet.StrutsResourceBundle
</
resource-bundle
>
-
<
security-role-ref
>
-
<
role-name
>
power-user
</
role-name
>
-
</
security-role-ref
>
-
<
security-role-ref
>
-
<
role-name
>
user
</
role-name
>
-
</
security-role-ref
>
-
</
portlet
>
配置Portlet实例属性:Liferay-portlet-ext
在liferay-portlet-ext里面写入,如下内容
-
<
portlet
>
-
<
portlet-name
>
strutsdemo
</
portlet-name
>
-
<
struts-path
>
strutsportlet
</
struts-path
>
-
<
use-default-template
>
false
</
use-default-template
>
-
</
portlet
>
注意:这里的Struts-path是上面配置的value里面的第一个“/”和最后一个“/”之间的内容
portlet-name必须和上面的一样。
归类Portlet:liferay-display
在Liferay-display里面将上面的portlet归类显示:
-
<
category
name
=
"category.sample"
>
-
<
portlet
id
=
"47"
/>
-
<
portlet
id
=
"48"
/>
-
<
portlet
id
=
"50"
/>
-
<
portlet
id
=
"66"
/>
-
<
portlet
id
=
"strutsdemo"
/>
-
</
category
>
将其放入示例下面,这里的归类,根据自己的需要。
国际化
在这个文件Language-ext_zh_CN.properties里面写入我让要让这个portlet显示的名字:
-
javax.portlet.title.strutsdemo=strutsportlet\u793a\u4f8b
这里的中文要使用native2ascii进行转义。
定义Struts页面流
在struts-config-ext.xml里面写入如下内容:
-
<
action
path
=
"/strutsportlet/demo"
type
=
"com.liferay.portlet.strutsdemo.StrutsAction"
>
-
<
forward
name
=
"sturts_portlet.view"
path
=
"sturts_portlet.view"
/>
-
<
forward
name
=
"sturts_portlet.success"
path
=
"sturts_portlet.success"
/>
-
<
forward
name
=
"sturts_portlet.err"
path
=
"sturts_portlet.err"
/>
-
</
action
>
这里的path,是前面的portlet-ext.xml里面定义的。其他的和普通Struts一样
定义title页面布局
在tiles-defs-ext.xml里面写入如下内容:
-
<
definition
name
=
"portlet.ext"
extends
=
"portlet"
/>
-
<
definition
name
=
"sturts_portlet.view"
extends
=
"portlet.ext"
>
-
<
put
name
=
"portlet_content"
value
=
"/portlet/struts/view.jsp"
/>
-
</
definition
>
-
<
definition
name
=
"sturts_portlet.success"
extends
=
"portlet.ext"
>
-
<
put
name
=
"portlet_content"
value
=
"/portlet/struts/success.jsp"
/>
-
</
definition
>
-
<
definition
name
=
"sturts_portlet.err"
extends
=
"portlet.ext"
>
-
<
put
name
=
"portlet_content"
value
=
"/portlet/struts/error.jsp"
/>
-
</
definition
>
这里的portlet.ext继承自portlet,也就是说portlet.ex会使用portlet.jsp作为他的模板。下面的这些同理。
创建view.jsp
在/html/portlet/struts下面创建init.jsp文件,在里面写入如下内容:
-
<%@ include file=
"/html/portlet/init.jsp"
%>
这里会报错,不用理会,因为这是通过ext环境开发的,部署后就会找到这个文件的。
创建view.jsp,内容如下:
-
<%@ page contentType=
"text/html; charset=UTF-8"
%>
-
<%@ include file="/html/portlet/struts/init.jsp"
%>
-
-
This is the <b>LiferayStudy</b> portlet.
-
<portlet:actionURL var="submitUrl"
>
-
<portlet:param name="struts_action"
value=
"/strutsportlet/demo"
/>
-
</portlet:actionURL>
-
<form action="<%=submitUrl%>"
method=
"post"
>
-
输入你的名字:<input type="text"
id=
"name"
name=
"name"
>
-
<input type="submit"
" value="
提交">
-
-
</form>
portlet标签的意思,请参看
创建Action类
package com.liferay.portlet.strutsdemo;
-
import
javax.portlet.ActionRequest;
-
import
javax.portlet.ActionResponse;
-
import
javax.portlet.PortletConfig;
-
import
javax.portlet.RenderRequest;
-
import
javax.portlet.RenderResponse;
-
-
import
org.apache.struts.action.ActionForm;
-
import
org.apache.struts.action.ActionForward;
-
import
org.apache.struts.action.ActionMapping;
-
-
import
com.liferay.portal.struts.PortletAction;
-
-
-
public
class
StrutsAction
extends
PortletAction {
-
-
-
public
void
processAction(ActionMapping mapping, ActionForm form,
-
PortletConfig config, ActionRequest req, ActionResponse res)
-
throws
Exception {
-
String name = req.getParameter("name"
);
-
if
(
null
== name ||
""
.equals(name)) {
-
setForward(req, "sturts_portlet.err"
);
-
} else
{
-
setForward(req, "sturts_portlet.success"
);
-
}
-
}
-
-
public
ActionForward render(ActionMapping mapping, ActionForm form,
-
PortletConfig config, RenderRequest req, RenderResponse res)
-
throws
Exception {
-
if
(getForward(req) !=
null
&& !getForward(req).equals(
""
)) {
-
return
mapping.findForward(getForward(req));
-
} else
{
-
return
mapping.findForward(
"sturts_portlet.view"
);
-
}
-
}
-
-
}
成功和错误页面不在写,可以根据自己的需要编写了
部署Portlet
打开Ant界面,Eclipse--》show views--》ant 添加build文件,找到Ext工程下面的build.xml文件,点击其中的
Direct-deploy。
完成之后,启动liferay-tomcat
在浏览中输入http://localhost:8080,登录,添加portlet
相关推荐
### Liferay Portal 6 学习之路:全面解析与实践指南 #### 一、Portal与Liferay Portal简介 ##### Portal概念 Portal,即门户网站,...希望本篇学习笔记能够帮助大家更好地理解和掌握 Liferay Portal 6 的相关知识。
5. Struts Portlet开发示例: - Struts Portlet开发是基于Struts框架来开发Portlet的过程,展示了如何使用Struts框架来创建Portlet应用。这部分内容涉及了Struts框架的基本使用和Portlet开发的相关知识。 6. 使用...
Liferay Portlet工程示例代码提供了开发者们一个深入理解并实践Liferay Portal平台上的portlet开发的宝贵资源。Liferay Portal是一款开源的企业级门户系统,它允许用户创建、管理和集成各种Web应用程序,而portlet...
### Liferay Portal 开发指南知识点概述 ...通过学习本文档,开发者不仅可以掌握 Portlet 的开发技巧,还能深入了解 Liferay Portal 的架构和技术特点,从而更好地利用该平台来满足企业的业务需求。
5. **Liferay Portal 开发工具** 开发者可以利用Eclipse、IntelliJ IDEA等IDE进行Liferay开发,这些IDE有专门的Liferay插件,能简化portlet和主题的创建。此外,了解如何使用Liferay Workspace和Maven进行项目管理...
在这个开发实例中,我们将深入探讨四个Liferay Portal MVC(Model-View-Controller)应用的实践案例,这些实例可以帮助开发者更好地理解如何在Liferay环境中进行portlet开发。 首先,让我们了解MVC模式在Liferay中...
《LifeRay Portal 6.0.6 学习手册》是一份针对LifeRay Portal初学者的详细教程,旨在帮助读者深入了解和掌握LifeRay Portal的使用和开发。下面将对其中的关键知识点进行深入探讨。 1. **LifeRay Portal初体验** ...
《Liferay Portal JSP开发指南》 在Liferay Portal开发中,JSP(JavaServer Pages)扮演着重要的角色,它是构建动态Web应用的一种技术。本文将深入探讨如何使用JSP进行Liferay Portlet的开发,主要包括新建Web...
### Liferay Portal 二次开发指南 #### 一、Liferay Portal 架构解析 ##### 1.1 Portal规范 Liferay Portal遵循了两种主要的门户规范:JSR 168 和 WSRP (Web Services for Remote Portlets)。JSR 168是一个Java...
为了更好地理解如何在Liferay 6中使用Struts2开发Portlet,我们可以参考Struts2自带的portlet示例`struts2-portlet-2.1.8.1.war`。该示例位于Struts2解压包下的`apps`目录内,它是基于Pluto (Apache的Portal实现) 的...
综上所述,这本书提供了关于Liferay Portal 5.2版本的系统开发知识,包括如何构建基于Java的企业内部网系统。内容包含了专业作者的深入见解,版权信息、法律声明以及出版社信息等细节,确保读者能够全面地了解书籍的...
- **开发示例**: - **简单的JSPPortlet**:使用JSP技术快速实现一个Portlet。 - **StrutsPortlet**: - **简单示例**:通过Struts框架开发一个简单的Portlet。 - **添加Action**:实现Portlet中的用户交互逻辑...
#### 一、Liferay Portal 6:企业级门户解决方案 Liferay Portal 6是一款先进的企业级门户平台,旨在帮助企业构建和维护高效、安全、用户友好的内部网(Intranets)。它不仅提供了丰富的功能模块,如文档管理、工作...
### Liferay 使用 Struts2 开发 Portlet 的详细步骤与知识点 #### 一、概述 在Liferay平台中,利用Struts2框架开发Portlet是一种常见的实现方式。这种方式结合了Liferay的强大功能与Struts2的灵活性,可以快速构建...
《Liferay Portlet Development Guide 4.3》是针对Liferay Portal平台的一份详细开发指南,旨在帮助开发者理解和创建portlet应用程序。Liferay Portal是一个开源的企业级门户系统,它提供了丰富的功能,如用户管理、...
### Liferay Portal 二次开发指南 #### 一、Liferay Portal 概览 **Liferay Portal** 是一款开源的企业级门户平台,它基于Java技术构建,支持多种标准,包括JSR 168和WSRP等。Liferay Portal 提供了一个高度可定制...
本文将深入探讨Liferay Portal的基础知识,安装配置,源码分析,开发环境设置,以及基于Struts2的Portlet应用开发等关键知识点。 1. Liferay Portal初体验: Liferay Portal是一款功能强大的企业级门户平台,支持多...
在本文中,我们将深入探讨如何使用Struts2框架在Liferay平台上开发Portlet。首先,我们需要准备相关的开发环境和依赖库。Liferay是一款开源的企业级门户平台,而Struts2是一个流行的MVC(模型-视图-控制器)框架,...
通过这份文档,开发者和管理员可以深入理解Liferay Portal的工作机制,学习如何开发和部署portlet,以及如何利用Liferay Portal构建和管理智慧社区或企业信息系统。无论是初学者还是经验丰富的开发者,都能从中受益...