HTML / JS代码:
<form id="myform" action="<portlet:actionURL/>" method="GET">
<input type="hidden" id="val" name="val"/>
<input type="submit" onClick="Go()" value="Go">
</form>
<script>
function search() {
document.getElementById("val").value = "MYVALUE";
document.getElementById("myform").submit();
}
</script>
Java代码:
@Override
public void processAction(ActionRequest request, ActionResponse response)
throws PortletException, IOException {
System.out.println("SHOULD REACH HERE");
}
如果我将方法更改为以HTML格式发布,我会使用GET方法进行处理操作。有人请指点我如何在liferay中提交GET请求?
感谢/
答案 0 :(得分:0)
这是您的浏览器根据规范行事,而不是与Liferay相关:如果查看动作网址,它会包含问号和一些参数。发送表单后,它们将被删除,替换为输入字段中的参数。
不是通过推理和链接规范,而是在this related stackoverflow question
中找到几个答案和解释还有基于javascript的变通方法。但是,由于processAction实际上可能会改变您的状态,因此通常将其置于POST操作上是个好主意。但既然你知道原因,你应该可以解决。
答案 1 :(得分:-1)
您可以在portlet操作类
中使用以下代码protected boolean isCheckMethodOnProcessAction() {
return _CHECK_METHOD_ON_PROCESS_ACTION;
}
private static final boolean _CHECK_METHOD_ON_PROCESS_ACTION = false;
但不推荐用于行动网址。