2015-11-06 40 views
0

我正在構建一個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提前。

回答

2

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,非常感謝您對您的幫助托馬斯,它對我來說就像一個魅力:) –