生成下面的两个文件:
view.jsp:显示欢迎信息,并且提供编辑页面的链接。
edit.jsp:显示有一个文本框的表单,允许欢迎信息可以被修改,并且包括一个回退到view.jsp的超级链接。
MVCPortlet类处理展示我们的JSPs,因此在本DEMO中,我们不需要生成一个单独的JAVA类。
首先我们不希望在同样的页面上出现多个欢迎信息,因此让我们的elearn007greeting 为非实例化。因此只需要编辑liferay-portlet.xml文件即可,如果你的配置文件里有instanceable属性,只需要把其设置为false即可,如果没有,请添加它,例如下面的例子:
my-greeting
/icon.png
false
/css/main.css
/js/main.js
my-greeting-portlet
现在我们将生成我们的jsp模板,从编辑view.jsp文件开始,该文件在你的docroot目录下,用下面的内容替换它:
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> <%@ page import="javax.portlet.PortletPreferences" %>
<% PortletPreferences prefs = renderRequest.getPreferences(); String greeting = (String)prefs.getValue( "greeting", "Hello! Welcome to our portal."); %> <%= greeting %>
edit.jsp
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> <%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %> <%@ page import="javax.portlet.PortletPreferences" %>
<% PortletPreferences prefs = renderRequest.getPreferences(); String greeting = renderRequest.getParameter("greeting"); if (greeting != null) { prefs.setValue("greeting", greeting); prefs.store(); %> Greeting saved successfully!
<% } %> <% greeting = (String)prefs.getValue( "greeting", "Hello! Welcome to our portal."); %>
注意,首先在超链接生成部分,使用了
WEB
页面,相反仅仅是一部分页面。
第二,注意edit.jsp文件的表单有个aui前缀,表示它属于AlloyUI标签库。
该标签库简化了代码量,提高了开发效率,但是你仍然可以使用HTML或是其他标签库这以你自己的选择为优先。
另外的jsp标签库你也会注意到
这些变量仅仅可以用在JSP在portlet特定生命周期阶段,下面列表对JSP可用的对象:
l RenderRequest-代表被发送到portlet的请求,该对象仅仅在render请求阶段可用。
l ResourceRequest-代表资源,在JSP处在资源服务阶段可用。
l ActionRequest-代表请求对象,该对象发送到处理一个action的portlet上,该对象在行动处理阶段可用。
l EventRequest-事件请求对象
l ResourceResponse-在资源服务阶段可用,代表资源回应对象,帮助portlet来绘制资源。
l EventResponse
l PortletConfig-代表配置对象
l PortletSession-
l Map
portletSessionScope:提供一个映射,类似调用PortletSession.getAttributeMa()
l PortletPreferences-表示portlet的偏好设置
l Map
portletPreferencesValue:提供一个映射,类似PortletPreferences.getMap()的调用,如果没有设置项,该映射则为空。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208827.html原文链接:https://javaforall.net
