重定向到renderURL在MVCPortlet不工作

问题描述:

我正在构建一个MVCPortlet Liferay 6.2 portlet。我有一个2个按钮的表单。第一个按钮验证表单(提交)。第二个重定向到一个jsp。我有一个困难,使其工作:重定向到renderURL在MVCPortlet不工作

<portlet:actionURL name="mainSubmit" var="mainSubmitURL"></portlet:actionURL> 

<portlet:renderURL var="viewLogsURL"> 
     <portlet:param name="mvcPath" value="/jsp/logs.jsp"/> 
</portlet:renderURL> 

<form ... action="<%=mainSubmitURL%>"> 
... 
<div class="controls-row "> 
      <label class="span1" ></label> 
      <input class="span2 btn " type="submit" value="Submit Form" > 
      <label class="span4" ></label> 
      <input class="span2 btn " onClick="<%=viewLogsURL.toString()%>" value="View Logs" /> 
     </div> 
</form> 

第一个按钮工作正常,但第二个按钮不重定向到viewLogsURL。

如果我更换:

<input class="span2 btn " onClick="<%=viewLogsURL.toString()%>" value="View Logs" /> 

有:

<buttonclass="span2 btn " onClick="<%=viewLogsURL.toString()%>" value="View Logs" /> 

,则该按钮也使得提交表单的URL(mainSubmitURL),而不是按钮URL(viewLogsURL)。

如果我使用:

 <aui:button class="span2 btn " onClick="<%=viewLogsURL.toString()%>" value="View Logs" /> 

这实际上执行了正确的重定向,但我想,以避免因为它会产生一些CSS样式问题,我不跟有一些过滤 - 代理问题,用它要么 。 所以我宁愿使用或如果可能(我敢肯定它是)。

我也试图改变:

<portlet:renderURL var="viewLogsURL"> 
     <portlet:param name="mvcPath" value="/jsp/logs.jsp"/> 
</portlet:renderURL> 

有:

<portlet:renderURL var="viewLogsURL"> 
     <portlet:param name="jspPage" value="/jsp/logs.jsp"/> 
</portlet:renderURL> 

没有机会......

Thx提前。

HTML onclick属性用于在单击元素时执行JavaScript代码。该值必须是有效的JavaScript代码,而不是网址。您可能错误地使用了<a href='url'>...</a>属性。

这是一个基本的HTML概念 - 有关更多详细信息,请参阅w3schools说明。

为了使重定向的工作,您可以设置重定向URL作为当前的位置:

<input class="span2 btn" onClick="location.href = '<%= viewLogsURL.toString() %>'" value="View Logs"/> 

或者调用JavaScript函数:

<input class="span2 btn" onClick="<portlet:namespace/>doRedirect()" value="View Logs"/> 

<script> 
    function <portlet:namespace/>doRedirect() { 
     location.href = '<%= viewLogsURL.toString() %>'; 
    } 
</script> 
+0

堤防中MOC,非常感谢您对您的帮助托马斯,它对我来说就像一个魅力:) –