动作映射触发控制器中的错误方法

Action mapping triggers wrong method in a controller

我有以下问题。我正在尝试在控制器中处理两个不同的动作映射。一个是按下按钮时触发,第二个是单击 link 时触发。 不幸的是,这两个动作都会触发 "buttonAction"。我不知道如何强制link触发"linkAction"。

这是我的代码:

Jsp:

<portlet:actionURL name="buttonAction" var="buttonActionUrl" ></portlet:actionURL>
<portlet:actionURL name="linkAction" var="linkActionUrl"></portlet:actionURL>

<form:form id="form" modelAttribute="model" method="POST" action="${buttonActionUrl}">
    <a id="link" href="#" onclick="linkClick();"></a>
    <button id="button" onclick="buttonClick();" type="submit"></button>
</form:form>

Java脚本:

function linkClick() {
    window.location = '${ linkActionUrl }';
} 

function buttonClick() {
    $('#form').submit();
}

Java;

@ActionMapping("buttonAction")
public void buttonAction(@ModelAttribute("model") Model model, BindingResult result, ActionRequest request, ActionResponse response, ModelMap modelMap) {
}

@ActionMapping("linkAction")
public void linkAction(@ModelAttribute("model") Model model, BindingResult result, ActionRequest request, ActionResponse response, ModelMap modelMap) {
}

提交按钮的 onclick 处理程序是多余的,因为提交会为您执行此操作。

此外,对于您的 link,也许只需更改为:

    <a id="link" href="${linkActionUrl}">foo</a>