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

时间:2015-02-23 17:35:13

标签: java javascript spring jsp portlet

我有以下问题。我正在尝试在控制器中处理两个不同的动作映射。一个是按下按钮时触发,另一个是点击链接时触发。 不幸的是,两个动作都会触发“buttonAction”。我不知道如何强制链接来触发“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>

使用Javascript:

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

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

爪哇;

@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) {
}

1 个答案:

答案 0 :(得分:1)

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

此外,对于您的链接,可能只需更改为:

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