`
linpyi
  • 浏览: 63328 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

liferay5.0 学习笔记2

阅读更多

学习liferay是个痛苦的过程,整天都在那么多包和类中徘徊.一个功能涉及的文件比较多.

 

这段时间本想照着上次哪个贴里面的做一个操作数据库的例子,发现很多不会,包括关于spring,hibernate有很多配置都看

 

不懂,只能一步步来,首先先从struts开始配置,至于数据,只能是自己add进去

 

1.首先先写一个portlet  继承StrutsPortlet

 

public class MyPortalPortlet extends StrutsPortlet {
	public void doView(RenderRequest req, RenderResponse res)
			throws IOException, PortletException {

		PortletPreferences prefs = req.getPreferences();
		super.doView(req, res);
	}

}

 

2.再写一个 action继承portletAction 这里的action其实就是struts中的action,只是继承了liferay自己的类

 

public class MyPortletAction extends PortletAction {
	public ActionForward render(
			ActionMapping mapping, ActionForm form, PortletConfig config,
			RenderRequest req, RenderResponse res)
		throws Exception {
		//if 如果窗口最小话的时候跳转到..(后面介绍),else如果最大化就跳转到view_users
		if (req.getWindowState().equals(WindowState.NORMAL)) {
			System.out.println("portlet.ext.myuser.view");
			return mapping.findForward("portlet.ext.myuser.view");
		}
		else {
			List users = new ArrayList();

			users.add("One");
			users.add("Two");
			users.add("Three");

			req.setAttribute("users", users);
			System.out.println("portlet.ext.myuser.view_users");
			return mapping.findForward("portlet.ext.myuser.view_users");
		}
	}
}

 

 

 3.接着开始配置配置文件

 

  先配置struts的相关配置文件,由于我是从ext开发,所以就直接配置struts-config-ext.xml(用过struts的都知道这个配置文件),在action-mapping中增加一个action,这里记着这个path的值,后面有用到

 

		<action path="/ext/myuser/view_users" type="com.ext.portlet.myuser.action.MyPortletAction">
			<forward name="portlet.ext.myuser.view" path="portlet.ext.myuser.view" />
			<forward name="portlet.ext.myuser.view_users" path="portlet.ext.myuser.view_users" />
		</action>

 
 接着配struts的标签指向,配置tiles-defs-ext.xml,增加两个跳转,继承portlet,进行跳转,<definition name="">与上面的struts 的<forward name 是完全相同的

 

	<definition name="portlet.ext.myuser.view" extends="portlet">
		<put name="portlet_content" value="/portlet/ext/myuser/view.jsp" />
	</definition>

	<definition name="portlet.ext.myuser.view_users" extends="portlet">
		<put name="portlet_content" value="/portlet/ext/myuser/view_users.jsp" />
	</definition>

 

 

4.接着配置portlet配置文件,portlet-ext.xml,增加新类,也就是上面写的MyPortalPortlet ,给他进行注册,

 

	<portlet>
		<portlet-name>lpyPortal</portlet-name>
		<display-name>Hello lpy</display-name>
		<portlet-class>com.ext.portlet.myuser.MyPortalPortlet</portlet-class>
		<init-param>
			<name>view-action</name>
			<value>/ext/myuser/view_users</value>
		</init-param>
		<expiration-cache>0</expiration-cache>
		<supports>
			<mime-type>text/html</mime-type>
		</supports>
		<resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>
		<portlet-preferences>
			<preference>
				<name>user</name>
				<value>123</value>
			</preference>
		</portlet-preferences>
		<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-name的名字给liferay给注册时需要用到

portlet-class写的就是上面写的MyPortalPortlet,连接jsp和action的portlet. 

 

下面解释下上面的信息

		<init-param>
			<name>view-action</name>
			<value>/ext/myuser/view_users</value>
		</init-param>

 初始参数这里的value就是上面struts-config-ext.xml里面的path路径 

 

 

		<portlet-preferences>
			<preference>
				<name>user</name>
				<value>123</value>
			</preference>
		</portlet-preferences>

 

这里的参数选择,设置一个默认值,传递的函数是user,默认值是123,在JSP中我们可以通过prefs.getValue("user", "")来获取,其实就是写在默认跳转的view.jsp中,给他赋一个默认的值,具体可以参看下面的view.jsp的写法

 

 

		<security-role-ref>
			<role-name>power-user</role-name>
		</security-role-ref>
		<security-role-ref>
			<role-name>user</role-name>
		</security-role-ref>

配置该portlet 的角色,以及角色的显示名字,角色名role-name 是由portlet.xml 中进行定义

该portlet 由com.liferay.portal.apache.bridges.struts.LiferayStrutsPortletURLImpl 类的实例进行处理,允许使用模版和实时刷新页面。可配置administrator,guest,power-user,user 四种角色对其拥有不同的权限。至于权限的研究,嘿嘿,慢慢来

 

 

5.配置liferay-portlet-ext.xml

 

		<portlet>
		<portlet-name>lpyPortal</portlet-name>
		<struts-path>ext/myuser</struts-path>
		<use-default-template>false</use-default-template>
		<restore-current-view>false</restore-current-view>
		<private-request-attributes>false</private-request-attributes>
		<private-session-attributes>false</private-session-attributes>
		<render-weight>1</render-weight>
	</portlet>

  这里的<use-default-template>设置为false如果为true的话,会出现2个标题,效果图片参见附件1,这里的

portlet-name要和portlet-ext.xml里面写的portlet的name一样

 

6.写JSP文件


 先写一个init.jsp  创建路径ext-web/docroot/html/portlet/ext/myuser/

<%@ include file="/html/common/init.jsp" %>

<portlet:defineObjects />

<% PortletPreferences prefs = renderRequest.getPreferences();%>

 
     代码就几行,include包含的JSP,其实是一个通用的,如果看下里面的内容,可以发现里面的内容基本上把很多常用的类和变 量都包括在里面了

 


  再写一个view.jsp

 

<%@ include file="/html/portlet/ext/myuser/init.jsp"%>

<a	href="<portlet:renderURL windowState="<%= WindowState.MAXIMIZED.toString() %>" />">MyUser <%= prefs.getValue("user", "") %> </a>

 

  这里的prefs是上面init.jsp中创建的,portal的页面就是一个jsp包含一个jsp,没有<html>这样的标签,因为都是统一的,只有table,或者div或者include,就一直往里面加内容

  写一个view_users.jsp

<%@ include file="/html/portlet/ext/myuser/init.jsp" %>
<% List users = (List)request.getAttribute("users");%>

<%
for (int i = 0; i < users.size(); i++) {
String userName = (String)users.get(i);
%>

<%= userName %><br>

<%
}
%>

 

这个JSP上的值是从上面写的action中获取来的,可以参看上面MyPortletAction中的

req.setAttribute("users", users);

 

最后在liferay-dislpay.xml中注册你写的portlet

 

	<category name="category.sample">
		<portlet id="47" />
		<portlet id="48" />
		<portlet id="50" />
		<portlet id="53" />
		<portlet id="66" />
		<portlet id="lpy"/>
		<portlet id="lpyPortal"/>
		<portlet id="EXT_1" />
	</category>

 

我是把他放在samplet中,这看个人喜好

 

应该差不多了.

最后用ant编译下,把他们全部编译到你安装的服务器,

 

  • 大小: 14.3 KB
分享到:
评论

相关推荐

    Liferay_学习笔记

    【Liferay 学习笔记】 Liferay 是一款开源的企业级门户平台,用于构建和管理复杂的Web应用程序。在本文中,我们将深入探讨如何在Liferay中进行一些基本操作和配置,如修改公司LOGO、增加用户、创建页面以及理解...

    Liferay框架工作学习笔记

    转正技术贴Liferay框架工作学习笔记

    liferay学习笔记1

    以下是对“Liferay学习笔记1”的详细解释和相关知识点的深入探讨: ### Liferay概述 Liferay是一款开源的企业级门户平台,它提供了一个强大的框架,用于构建企业级应用程序和服务。Liferay的核心功能包括内容管理...

    Liferay6 官方培训学习笔记

    ### Liferay6官方培训学习笔记:开发环境搭建与数据库配置详解 #### 一、开发环境搭建 Liferay是一款基于Java的开源企业级门户框架,它提供了丰富的功能和强大的定制能力,适用于构建各种复杂的Web应用程序。在...

    Liferay_Portal_6学习之路-学习笔记完整版

    ### Liferay Portal 6 学习之路:全面解析与实践指南 #### 一、Portal与Liferay Portal简介 ##### Portal概念 Portal,即门户网站,...希望本篇学习笔记能够帮助大家更好地理解和掌握 Liferay Portal 6 的相关知识。

    liferay 超级学习文档

    本超学习文档将深入探讨Liferay的核心特性、开发环境、Java技术的应用以及Hibernate在Liferay中的整合。 一、Liferay 框架 Liferay 框架基于Java EE(Enterprise Edition)标准,它提供了丰富的API和工具,允许...

    liferay笔记.doc

    liferay笔记.doc

    liferay学习笔记

    ### Liferay的学习路径 对于初学者来说,了解Liferay的基本架构和技术栈是非常重要的。以下是一些关键的学习点: #### 1. **理解Liferay架构** - Liferay采用了一种模块化的设计思想,其中最核心的部分是Liferay ...

    荷露叮咚Liferay Portal 6学习笔记完整版.

    与其他商业产品相比,Liferay具有成本低、开源等特点,但也存在文档较少、学习成本较高等问题。 - JSR168是Java社区进程发布的一个规范,其主要目的是提供不同Portal产品之间的互通性,通过定义Portal实现规范和...

    liferay-development-documentation-5.0.pdf

    《Liferay开发文档5.0》不仅是一本学习Liferay开发的指南,更是深入理解Liferay架构、掌握高级开发技巧的宝典。通过系统地学习文档中的知识点,开发者将能够在Liferay平台上高效地开发出功能丰富、界面美观的应用,...

    liferay学习

    在社区论坛如iteye(博文链接:https://pengjj2.iteye.com/blog/2018082)上,可以找到许多关于Liferay的问题解答、经验分享和案例研究,这些资源对于学习者来说是宝贵的财富。参与讨论、提问和解答问题,能加速学习...

    Liferay Portal 5 New Features.pdf

    ### Liferay Portal 5.0新特性解析 #### 引言 随着技术的不断发展与进步,企业对于协作工具的需求日益增长。Liferay Portal 5.0作为一款领先的企业级开源门户解决方案,在此版本中引入了多项增强功能,尤其是其...

    liferay6.1开发学习

    【Liferay 6.1 开发学习】 Liferay 是一款开源的企业级门户平台,它提供了内容管理、社交网络、协作工具等功能,适用于构建企业内部或对外的网站和工作平台。Liferay 6.1 版本是其重要的里程碑,包含了丰富的功能...

    liferay我自己的笔记

    根据提供的信息,我们可以推断出文档与Liferay学习相关,但由于文档内容似乎包含了大量乱码,因此我们将基于标题和描述中的关键词“Liferay”来进行详细的知识点总结。 ### Liferay基础知识 #### 1. 什么是Liferay...

    liferay笔记

    liferay笔记

    liferay6+struts2集成项目

    **Liferay 6 + Struts 2 集成项目详解** 在Web应用程序开发中,Liferay Portal和Struts 2框架的结合使用可以提供强大的功能和灵活性。Liferay是一款开源的企业级门户平台,它提供了内容管理、社交网络、工作流等...

    liferay学习系列文章

    2. **Portlet开发**:介绍portlet生命周期,MVC Portlet的工作原理,以及如何使用Liferay的开发工具创建和调试portlet。 3. **主题与布局**:Liferay的主题决定了门户的外观,而布局决定了页面元素的排布。如何...

    liferay快速入门quickstart

    - **编写简单JSPPortlet:**通过学习如何编写JSPPortlet,开发者能够理解Liferay Portlet的基本结构和工作原理,为更复杂的开发项目打下坚实的基础。 综上所述,Liferay Portal不仅为企业提供了一个强大的门户平台...

    struts2+liferay集成

    Struts2和Liferay的集成是一项常见的企业级应用开发任务,尤其对于构建可扩展且功能丰富的Web应用程序至关重要。Struts2是一个强大的MVC框架,它提供了处理用户请求、业务逻辑和视图展示的能力,而Liferay则是一个...

    Liferay搭建struts2

    标题中的“Liferay搭建Struts2”意味着我们将讨论如何在Liferay门户平台上集成并使用Struts2框架。Liferay是一款开源的企业级Portal解决方案,而Struts2是一个流行的Java web应用程序开发框架,它基于Model-View-...

Global site tag (gtag.js) - Google Analytics