• liferay Portal对象


    Portal对象
    1、request
       portal中的request分为Action Request 和 Render Request两种类型。
       因此Portlet接口定义了两种方法分别处理不同的Request
       processAction(ActionRequest request,ActionResponse response) 和 render(RenderRequest request,RenderResponse response)
       从某种意义上讲render方法类似与Servlet中的service方法,doView doEdit doHelp 有类似与doGet doPost方法
       A、portletRequest分为RenderRequest 和 ActionRequest ,分别有renderURL和ActionURL来触发
          actionURL适用于确实的action(行为)情况下。比如:表单提交后Persistent状态的改变,session的改变,perference的修改等等。
          renderURL通常使用处理Porlet的导航。
          ActionURL举例:
          <%
    PortletURL  pu = renderResponse.createActionURL();
    pu.setParameter("Action","Login");
          %>
          <form name="form1" method="post" action="<%=pu.toString()%>">
          RenderURL举例:
          <%
    PortletURL pu = renderResponse.createRenderURL();
    pu.setParameter("page",number);
          %>
          <a href="<%=pu.toString()%>">下一页</a>
       B、renderURL和actionURL的处理方式
          当客户端请求是一个renderURL触发的时候,Portal服务器会调用该Protal页面所有的Porlet的render方法
          当客户端请求的是一个actionURL触发的时候,Portal服务器会调用该页面所有的Porlet的processAction方法,
             然后再调用render方法。
       C、RenderRequest 和 ActionRequest的parameter参数作用范围
          当客户端请求一个actionRequest触发时,所有parameter参数的取得都必须在processAction方法中处理。
          如果要在renderRequest获取该参数,必须
          String str = req.getParameter("Action")
          response.setRenderParameter("Action"str)
    2、response对象
       Response对象也有两种:RenderResponse和ActionResponse,分别用来封装对应的RenderRequest和ActionRequest的返回信息
       他们的父类PorletResponse拥有setPorperty 和 getPorperty两个方法用来传递信息给Portal容器。
     
       ActionResponse主要用来处理以下功能:

       A、重定向
       B、改变窗口状态、Portlet模式
       C、传递parameter参数到RenderRequest中
       RenderResponse主要处理:
       A、设置ContentType
       B、得到OutputStream 和 Writer 对象,用来输出页面内容
       C、Buffering缓冲
       D、设定Portlet的标题,但是必须在Portlet输出前调用,否则别忽略
    3、PortletConfig对象
       和ServletConfig对象相似,PortletConfig对象提供对Portlet初始化信息及PortletContext对象存取的方法
       和ServletConfig d对象不同的是,PortletConfig对象提供对Porlet的标题等资源的I18N支持,可以通过设定不同的Resource
       Bundle文件以提供多种语言支持
    4、Portal的Session
       Portal的Session分为Applicaton Scope 和Portlet Scope 而至区别:
       A、Application Scope范围的Session中保存的对象,对于同一个Portal应用范围的所有Portlet都是可用的
       B、Porlet Scope范围的Session中保存的对象,只对本Porlet可用,其他Portlet即使在同一应用中,也不可用。
    5、Preference对象
       Preference对象被设计用来实现用户的个性化设置,可以帮助用户对Portlet进行符合用户需求的显示定制和行为定制,
       可以替代部分的数据库功能。更需要指出的是,Preference对象只是用来存取简单的配置信息,并不能完全替代数据库应用。
       Preference对象对于配置信息采用键值的形式存取,用户可以将需要的信息暂时保存在Preference中。
       举例:
       PortletPreference p = req.getPortletPreferences();
       p.setValue("username","zhangzunwei");
       p.store();
       Perference
       对性用来存取用户的个性化信息,所以不同用户的Preference对象不能共享。
       可以在portlet.xml中配置Preference信息:
       <portlet-preferences>
    <preference>
           <name>username</name>
           <value>zhangzunwei</value>
           <read-only>true</read-only>
    </preference>
        </portlet-preferences>
        另外,还可以配套使用PreferencesValidator对性,对Portlet的Preference在存贮之前进行验证,保证数据稳定性。
  • 相关阅读:
    最佳路径搜索算法1
    积分方程的程序化解决方案
    lcov
    nvidia driver
    dependency
    scp ssh-server
    boost 安装 latest
    ubuntu 快捷键
    nvidia drive
    查询优化器 postgres
  • 原文地址:https://www.cnblogs.com/jifeng/p/2115198.html
Copyright © 2020-2023  润新知