zoukankan      html  css  js  c++  java
  • LifeRay学习记录

    1.LifeRay的知识学习(越靠前推荐度越高):

    1. 国内某一对LifeRay较为详细的介绍,了解基本知识点非常有帮助,文章点此
    2. 学习It,当然少不了国外的好书籍,这里推荐《Liferay User Interface Development》,对于开发lifeRay的模块很有指导作用,电子版请看附件(额,不知道如何上传);
    3. LifeRay的官方文档,排在最后,因为个人觉得质量一般,作为参考未尝不可。至于国内的《Liferay Portal 6.1门户网站建设最佳实践》一书,纯粹是翻译了官方的用户指南,对liferay开发帮助不大。

    2.lifeRay与struts2的整合:

    以下几点乃经验积累:

      在portlet插件工程里整合strut2时,不要直接从strut2官网上下载的full版本,然后全部的jar包都放到插件工程的lib里面,否则将会有n多不应该出现的问题(说是不应该是因为这些问题都与lifeRay无关),时间证明,以下jar包可以支持整合开发:

    <component name="libraryTable">
    <library name="Struts 2-2.3.20" type="struts2">
    <properties version="2.3.20" />
    <CLASSES>
    <root url="jar://$PROJECT_DIR$/lib/ognl.jar!/" />
    <root url="jar://$PROJECT_DIR$/lib/commons-fileupload.jar!/" />
    <root url="jar://$PROJECT_DIR$/lib/xwork-core.jar!/" />
    <root url="jar://$PROJECT_DIR$/lib/commons-lang.jar!/" />
    <root url="jar://$PROJECT_DIR$/lib/commons-io.jar!/" />
    <root url="jar://$PROJECT_DIR$/lib/asm-commons.jar!/" />
    <root url="jar://$PROJECT_DIR$/lib/asm-tree.jar!/" />
    <root url="jar://$PROJECT_DIR$/lib/asm.jar!/" />
    <root url="jar://$PROJECT_DIR$/lib/struts2-core.jar!/" />
    <root url="jar://$PROJECT_DIR$/lib/freemarker.jar!/" />
    <root url="jar://$PROJECT_DIR$/lib/javassist.jar!/" />

    <root url="jar://$PROJECT_DIR$/lib/struts2-portlet-plugin-2.3.20.jar!/" />

    </CLASSES>
    <JAVADOC />
    <SOURCES />
    </library>
    </component>

    请注意strut2的版本为2.3.20。

      成功编译打包插件工程(这里指portlet)后,并配置了某个mode的default页面(这里已view为例)如:

    <init-param>
      <name>defaultViewAction</name>
      <value>index</value>
    </init-param>

      在页面上添加该portlet会报错说找不到action,借鉴常规web的方法,在WEB-INF路径下假设index.action即可,如图 :

      当提交参数到action时,如果出现Reject process action for http://localhost:8080/xxx的error,在插件工程的liferay-portlet.xml里面,添加<add-default-resource>true</add-default-resource>配置即可,如图:

      至于为何,请看:

    <!--
    If the add-default-resource value is set to false and the portlet does not
    belong to the page but has been dynamically added, then the user will not have
    permissions to view the portlet. If the add-default-resource value is set to
    true, the default portlet resources and permissions are added to the page, and
    the user can then view the portlet. This is useful (and necessary) for portlets
    that need to be dynamically added to a page. However, to prevent security loop
    holes, the default value is false.

    The properties "portlet.add.default.resource.check.enabled" and
    "portlet.add.default.resource.check.whitelist" in portal.properties allow
    security checks to be configured around this behavior.
    -->
    <!ELEMENT add-default-resource (#PCDATA)>

      

      发觉从页面提交上来的参数,在action里面找不到时,有如下几个解决办法:

    1. In your JSP, add <portlet:namespace/> in front of parameters names.
    2. use Alloy elements
    3. In liferay-portlet.xml add below tag:
    <requires-namespaced-parameters>false</requires-namespaced-parameters>

       以上办法,我只证实了第三种,确实可行,具体配置请看上图。

       记得,在编写页面时,form标签一定要使用strut2的标签编写,否则会出现不能请求到action的错误(在firebug观察两个写法下form的action属性的值,对比发现,如果是strut2的标签,action的值为标准的portlal的url,html形式的action的值为页面值)!

     3.lifeRay的Two phases of Portlet Execution

      The reason why two phases are needed is because a portlet does not own a whole HTML page, it only generates a fragment of it. The portal that holds the portlet is the one responsible for generating the page by invoking one or several portlets and adding some additional HTML around them。

    不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之
  • 相关阅读:
    MySql
    027 mysql
    navicat
    基于阿里云资源的分布式部署方案
    translate(50%,50%) 实现水平垂直居中
    SSH2 协议详解
    DNS服务配置篇 巴哥学Server2003
    Java 8 后的新功能梳理
    IBM Cognos BI 最佳实践系列 网站地址
    jsf2.0 入门视频 教程
  • 原文地址:https://www.cnblogs.com/lauyu/p/4392990.html
Copyright © 2011-2022 走看看