如何在liferay中发出GET请求

时间:2014-06-26 20:32:34

标签: java liferay liferay-6

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请求?

感谢/

2 个答案:

答案 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;

但不推荐用于行动网址。