0

当我尝试在 Liferay 6.2 中获取表单中提交的数据时,它返回空值,就好像表单数据被丢弃一样。

JSP:

<liferay-portlet:actionURL var="link">
    <liferay-portlet:param name="action" value="doSomething"/>
</liferay-portlet:actionURL>
<form:form method="POST" action="${link}">
    <label>
        <select id="comboSelect" name="comboSelect">Options:
            <option value="1">FOO</option>
            <option value="2">BAR</option>
        </select>
    </label>
    <input type="submit"/>
</form:form>   

控制器:

@ActionMapping(params = { "action=doSomething" }, method = RequestMethod.POST)
public void doSomething(@RequestParam(value = "comboSelect") String selection){
    System.out.print(selection);
}

为什么会这样?

4

1 回答 1

1

您应该name像这样为您的值添加名称空间前缀:

<input type="text" name="<portlet:namespace />inputTextName" />

或者您可以requires-namespaced-parametersliferay-portlet.xml.

这是自 Liferay 6.2 以来的变化:https ://github.com/liferay/liferay-aui-upgrade-tool/issues/30

他们决定从 6.2 开始使表格更加严格。据我所知,默认设置为 false 仍在 Liferay 论坛上的争论中,所以它可能会变成自动的,但现在你必须手动处理命名空间。

于 2014-01-08T07:31:39.077 回答