我有一些问题。当我点击按钮搜索时,我会重定向到另一个portlet并在同一个动作中保存一些数据。现在,当我单击按钮搜索时,它将在Java代码中执行actions方法searchEntry。我可以在java中的此操作方法搜索中重定向到另一个portlet吗?我怎么能这样做?还是另外一个Idee来解决这个问题?我发布了一部分jsp和java代码,其中是actions方法searchEntry。
JSP:
<portlet:actionURL name="searchEntry" var="customerURL"></portlet:actionURL>
<aui:form action="<%= customerURL %>" name="
<portlet:namespace />fm">
<aui:fieldset>
<aui:input label="Customer ID" name="customerid"></aui:input>
</aui:fieldset>
<aui:button-row>
<aui:button type="submit" onClick="<%= customerURL.toString() %>" value="Search">
</aui:button>
</aui:button-row>
</aui:form>
JAVA:
public void searchEntry(ActionRequest request, ActionResponse response) {
int index = dataCustomerID.indexOf(ParamUtil.getString(request, "customerid"));
System.out.println("You are now in method searchEntry " + index);
}
答案 0 :(得分:0)
是的,您可以通过使用DoEvents
创建该portlet的URL并调用PortletURLFactoryUtil.create()
答案 1 :(得分:0)
重定向到删除了所需portlet的页面,而不是portlet iteself。就像,我们在大多数Web应用程序环境中都这样做。
因此,如果你能记住(硬编码)你丢弃portlet的页面,你可以按照以下步骤操作:
public void searchEntry(ActionRequest request, ActionResponse response) {
int index = dataCustomerID.indexOf(ParamUtil.getString(request, "customerid"));
System.out.println("You are now in method searchEntry " + index);
/* perform operation with your data */
response.sendRedirect("/html/customerpage");
}
但是,如果要绑定某些负责呈现在其他页面上删除的portlet的参数,则需要使用PortletURLFactoryUtil.create
动态创建URL,如下所示:
public void searchEntry(ActionRequest request, ActionResponse response) {
ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
int index = dataCustomerID.indexOf(ParamUtil.getString(request, "customerid"));
System.out.println("You are now in method searchEntry " + index);
/* perform operation with your data */
long groupId = themeDisplay.getScopeGroupId();
String portletId = "customerpage_WAR_customerpageportlet";
long plid = PortalUtil.getPlidFromPortletId(groupId, portletId);
LiferayPortletURL renderURL = PortletURLFactoryUtil.create(request,
portletId, plid, PortletRequest.RENDER_PHASE);
renderURL.setParameter("show.jsp", "/html/customerpage/show.jsp");
response.sendRedirect(renderURL.toString());
}
上述代码中棘手的部分是获取plid
。 PortalUtil
中还有其他方法可供使用,具体取决于您的要求和数据。
获得plid的另一种方法是使用getFriendlyURLLayout(long groupId, boolean privateLayout, String friendlyURL)
LayoutLocalServiceUtil
{{1}}当你想根据friendlyURL获得plid时,你确定私有/公共布局。