`
Tyler_Zhou
  • 浏览: 217012 次
  • 性别: Icon_minigender_1
  • 来自: 湖北->上海
社区版块
存档分类
最新评论

liferay在留言溥的基础上开发留言本

阅读更多
这两天要做一个在线留言板,liferay本身提供的留言溥功能很强大,很多功能根本用不着的,所以打算自已做一个,本以为很简单的一个留言本结果花了一个星期的时间,郁闷之极。现在把一些经验写下来。
liferay-display.xml:
<portlet id="message_books" />
liferay-portlet-ext.xml:
<portlet>
<portlet-name>message_books</portlet-name>
<icon>/html/portlet/blogs/icon.png</icon>
<struts-path>message_books</struts-path>
<configuration-action-class>com.ext.portlet.messageboards.action.ConfigurationActionImpl</configuration-action-class>指向自已的configurationaction
<use-default-template>false</use-default-template>
<restore-current-view>false</restore-current-view>
<instanceable>true</instanceable>因为有十几套网站要用到,原来没有这句话,造成在不同的网站中PortletPreferences取值不同,这个问题找了两天,搞得要吐血。
<private-request-attributes>false</private-request-attributes>
<private-session-attributes>false</private-session-attributes>
<render-weight>0</render-weight>
</portlet>
portlet-ext.xml:
<portlet>
<portlet-name>message_books</portlet-name>
<display-name>message_books</display-name>
<portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>
<init-param>
<name>view-action</name>
<value>/message_books/view</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>categoryId</name>
</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-info>
<title>message_books</title>
</portlet-info>
</portlet>
struts-config-ext.xml:
<!-- message books -->
<action path="/message_books/view" type="com.ext.portlet.messageboards.action.ViewAction">
<forward name="portlet.message_boards.error" path="portlet.message_boards.error" />
<forward name="portlet.message_books.view" path="portlet.message_books.view" />
</action>

<action path="/message_books/edit_message" type="com.ext.portlet.messageboards.action.EditMessageAction">
<forward name="portlet.message_boards.edit_message" path="portlet.message_books.edit_message" />
<forward name="portlet.message_boards.error" path="portlet.message_boards.error" />
</action>
tiles-defs-ext.xml:
<definition name="portlet.message_books.view" extends="portlet.message_boards">
<put name="portlet_content" value="/portlet/ext/message_boards/view.jsp" />
</definition>


<definition name="portlet.message_books.edit_message" extends="portlet.message_boards">
<put name="portlet_content" value="/portlet/ext/message_boards/edit_message.jsp" />
</definition>
以上就是主要的配置文件的
ViewAction用messageboards本身的就可以,只是要改一个return actionforward地址,EditMessageAction复制原有的,不过在updateMessage中他使用的是MBMessageServiceUtil.addMessage方法,这个方法是要验证userID的,可是很奇怪我在有的网站没有登陆可以留言但是有的不行,现在还没有找出问题,我只有使用了MBMessageLocalServiceUtil.addMessage这个方法多了一个参数就是USRERID我设了一个变量就是游客的ID这也是没有办法的办法。ConfigurationActionImpl这个不能复制原来的因为原来的很复杂没有必要,我复制的是journalarticles的ConfigurationAction,因为这个简单些,只是要把社区类型改成留言本的类型(比如娱乐讨论区,生活区)MBCategoryLocalServiceUtil.getCategories这个方示可以取得。
OK下面就是JSP了,大家可以发现liferay的JSP写的很复杂很大一部分的功能都是在jsp里面实现 的,这个也不例外,在这里我只写出JSP中重要的一些方法。
view.jsp:
int tatal = MBMessageLocalServiceUtil.getCategoryMessagesCount(categoryId);//这个方法给一个留言类型就可得到一共几条

List list = MBMessageLocalServiceUtil.getCategoryMessages(categoryId, 0, tatal);//得到所有类型的留言
但是有点要注意这取出了所有的留言,有很多只是其中一些的回复留言,message.getParentMessageId() == 0那么这个就是根留言了,否则的话里面的ID就是他回复对像的ID,这个对像也是在这个list中的,至于怎么显示就看自已的需要了。
configuration.jsp:

int total = MBCategoryLocalServiceUtil.getCategoriesCount(portletGroupId.longValue(), 0);//取出留言板所有类型,第一个参数是当然网站的ID也叫社区ID
searchContainer.setTotal(total);
List results = MBCategoryLocalServiceUtil.getCategories(portletGroupId.longValue(), 0, searchContainer.getStart(), searchContainer.getEnd());//取出所有的类型这样就可以在JSP中用下拉框显示出来了,可以让管理员来设定要显示的那个类型。其他的至于每页显示数量,排序都可以用他原有的。
edit_message.jsp:
这个就根据你的需要来写了,他原有的功能很多的,你只需要保留你想显示的,其他就删。
基本上到这里就结束了,不过这个是没有翻页功能的,他本身提供了一个翻页的标签,可是想和他的融合起来还有很困难的,因为他的是一个<liferay-ui:search-iterator searchContainer="<%= searchContainer %>" />而我取出的是一个LIST,并且他的显示格式是固定的。
分享到:
评论

相关推荐

    Liferay入门帮助文档(Liferay开发指南)

    Liferay在国内可能较为少见,但在国际上,尤其是在外企中,它是一个受欢迎的门户平台。其吸引力在于它减少了开发者的重复工作,例如,开发者无需编写DAO(数据访问对象)和服务层代码,只需关注Web层和数据库表的...

    liferay开发文档集合

    4. **《liferay_4_portlet_development_guide.pdf》** - 该文档专注于Liferay中的portlet开发,讲解了portlet生命周期、MVC Portlet、JSR 286规范以及如何在Liferay平台上创建和集成portlet,对于想要开发Liferay...

    LIferay6开发书籍

    《Liferay6开发书籍》是一套全面...无论你是初学者还是有经验的开发者,都可以从中受益,提升自己在Liferay平台上的设计和开发技能。通过学习这些内容,你将能够构建出满足企业需求、高效且用户体验优良的Liferay应用。

    liferay6.2开发指南.pdf

    - **安装 Liferay IDE**:开发者可以在 Eclipse 上安装 Liferay IDE,以获得专为 Liferay 开发优化的集成开发环境。 - **测试 Liferay 服务器**:IDE 允许开发者配置和管理多个 Liferay 服务器实例,方便进行本地...

    liferay开发小记---开发环境的搭建

    首先,我们需要了解Liferay开发的基础。Liferay提供了多种开发工具,如Liferay IDE、Liferay Workspace等,这些工具能够简化开发流程并提高效率。Liferay IDE是基于Eclipse的集成开发环境,它集成了许多Liferay特定...

    liferay 6.0 开发指南

    该版本(6.0)在社区版的基础上提供了更多的功能和改进,特别是在性能优化方面有了显著提升。 - **核心技术和开发策略**:这部分涵盖了Liferay 6.0的关键组成部分和技术细节。 - **Portlets**:Portlets是Liferay...

    liferay的开发文档

    本压缩包包含了四个重要的Liferay开发文档,旨在帮助开发者深入理解和掌握Liferay的使用与开发技巧。 文档一:《Liferay Portal Developer's Guide》 这份文档详细介绍了Liferay Portal的开发流程,包括portlet的...

    liferay开发实例

    liferay开发liferay开发liferay开发liferay开发

    Liferay开发文档整理.pdf

    通过上述内容的整理和总结,可以看出文档主要介绍了Liferay开发的基础概念,包括Liferay的版本信息、Portlet开发、主题和布局模板的自定义、插件SDK和Liferay IDE的使用,以及如何配置开发环境。同时,也涉及了...

    liferay如何在eclipse中配置开发和debug环境

    - 在Liferay服务器上启用远程Debug模式。这通常需要在服务器启动脚本中添加相关参数,如对于Tomcat,可能需要在`catalina.sh`中添加`-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n`。 - 启动...

    liferay开发文档.pdf

    liferay开发文档.pdf Liferay 是一个基于Java的开源企业门户平台,提供了强大的门户解决方案。下面是根据给定的文件信息,生成的相关知识点: Liferay portal的安装与使用 Liferay portal的安装是实现门户解决...

    liferay portal开发大全

    本资源集是针对Liferay Portal开发的一系列中文文档,旨在帮助开发者全面了解和掌握Liferay的相关技术。 1. **Liferay Portal 架构** Liferay Portal的核心架构基于Java EE标准,包括Servlet容器、EJB、JMS和JPA等...

    liferay6中文开发文档(开发手册、二次开发指南、代码研读、开发环境配置等)

    liferay6中文开发文档 包括: Liferay6开发者手册V1.0.doc Liferay+6.0.5开发指南.docx LiferayPortal二次开发指南.pdf Liferay代码研读.pdf liferay-技术文档.doc liferay架构.pdf Liferay开发环境配置说明文档.pdf

    7z压缩,三合一-LifeRay-开发参考手册&二次开发指南&4.3中文开发指南

    【标题】"7z压缩,三合一-LifeRay-开发参考手册&二次开发指南&4.3中文开发指南" 涵盖了LifeRay平台的重要...同时,中文的版本使得国内开发者能更好地理解和应用这些知识,从而提升在LifeRay平台上的开发效率和质量。

    liferay portal 开发实例

    在这个开发实例中,我们将深入探讨四个Liferay Portal MVC(Model-View-Controller)应用的实践案例,这些实例可以帮助开发者更好地理解如何在Liferay环境中进行portlet开发。 首先,让我们了解MVC模式在Liferay中...

    LIFERAY-HOOK 开发指南

    在Liferay框架中,Hook是一种强大的工具,它允许开发者对Liferay核心功能进行扩展和定制,而无需直接修改Liferay源代码。LIFERAY-HOOK开发指南主要涵盖了如何利用Hook实现特定功能的详细步骤,以确保二次开发的代码...

    liferay6.2开发指南

    liferay6.2开发指南liferay6.2开发指南.doc

    liferay 6.2开发指南+用户手册

    本指南将基于提供的"liferay 6.2开发指南+用户手册"来深入讲解其核心知识点。 1. **Liferay Portal概述** Liferay Portal是一个强大的企业门户解决方案,支持多租户、个性化视图和可扩展的插件架构。6.2版本在前一...

Global site tag (gtag.js) - Google Analytics