gpt4 book ai didi

liferay - Liferay 中的 Portlet 导航

转载 作者:行者123 更新时间:2023-12-03 17:08:02 25 4
gpt4 key购买 nike

所以我在弄清楚如何处理liferay中的导航时遇到了一些麻烦。我是 jsp、portlet 和 liferay 的新手,但我想我已经用尽了所有文档来寻找答案。

我正在寻找一种提交 html 表单并使用字段设置渲染参数的方法。我想要可以与普通浏览器导航一起使用的 URL,以及可添加书签的 URL。我已经找到了一种方法,通过使用 javascript 来更新已声明的 renderurl 与表单中的新值,但我正在尝试找出一种更简洁的方法。

现在我已经尝试了一些方法..使用这个页面

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<%@ page import="com.liferay.portal.kernel.util.ParamUtil" %>
<%@ page import="com.liferay.portal.kernel.util.Validator" %>
<%@ page import="javax.portlet.PortletPreferences" %>

<portlet:defineObjects />


<%
PortletPreferences prefs = renderRequest.getPreferences();
String search = ParamUtil.getString(renderRequest, "search");
%>

<portlet:renderURL var="viewURL">
<portlet:param name="jspPage" value="/view.jsp" />
</portlet:renderURL>

<aui:form action="<%= viewURL %>" method="post">
<aui:input label="search" name="search" type="text" value="<%=search %>" />
<aui:button type="submit" />
</aui:form>

使用帖子,我会得到结果网址:
http://localhost:8080/web/10157/home?p_p_id=search_WAR_searchportlet_INSTANCE_Kt9C&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_search_WAR_searchportlet_INSTANCE_Kt9C_jspPage=%2Fview.jsp

如果我更改表单以获取,那么我会得到这个网址:
http://localhost:8080/web/10157/home?_search_WAR_searchportlet_INSTANCE_Kt9C_search=123

但是使用带有参数集的 renderURL,我会得到这个,它是 post 和 get 返回的组合:
http://localhost:8080/web/10157/home?p_p_id=search_WAR_searchportlet_INSTANCE_Kt9C&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_search_WAR_searchportlet_INSTANCE_Kt9C_jspPage=%2Fview.jsp&_search_WAR_searchportlet_INSTANCE_Kt9C_search=123

所以现在,我可以使用带有 post 的表单,而 ParamUtil.getString 将识别数据,但链接将无法添加书签,或者我可以使用带有 get 的表单,在 url 中留下信息,但我无法获取 ParamUtil来识别数据。即使我可以使用 get 表单获取要识别的数据,我也真的不想使用它,因为如果我从其他 portlet 中的表单进行任何提交,则不会保留该参数。据我了解,RenderURLs 保留了这些东西。

如果我完全不关心这些事情,请原谅我。我是 jsp、portlet 和 liferay 的新手,并且对我应该如何做很多这些事情感到迷茫。

最佳答案

因为你需要使用

<portlet:actionURL>

用于处理表单提交操作.....

关于liferay - Liferay 中的 Portlet 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8607922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com