重定向到 MVCPortlet 中的 renderURL 不起作用
redirect to renderURL in a MVCPortlet not working
我正在构建 MVCPortlet Liferay 6.2 portlet。我有一个带有 2 个按钮的表单。第一个按钮验证表单(提交)。第二个重定向到 jsp。我很难让它工作:
<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 样式问题和一些过滤代理问题,而我没有使用 or 。
所以我宁愿使用 or 如果可能的话(我很确定它是)。
我也试过改:
<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>
没有机会...
提前致谢。
HTML onclick
属性用于在单击元素时执行 JavaScript 代码。该值必须是有效的 JavaScript 代码,而不是 URL。您可能将其误认为是 <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>
我正在构建 MVCPortlet Liferay 6.2 portlet。我有一个带有 2 个按钮的表单。第一个按钮验证表单(提交)。第二个重定向到 jsp。我很难让它工作:
<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 样式问题和一些过滤代理问题,而我没有使用 or 。 所以我宁愿使用 or 如果可能的话(我很确定它是)。
我也试过改:
<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>
没有机会...
提前致谢。
HTML onclick
属性用于在单击元素时执行 JavaScript 代码。该值必须是有效的 JavaScript 代码,而不是 URL。您可能将其误认为是 <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>