重定向到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>
堤防中MOC,非常感谢您对您的帮助托马斯,它对我来说就像一个魅力:) –