动作映射触发控制器中的错误方法
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>
我有以下问题。我正在尝试在控制器中处理两个不同的动作映射。一个是按下按钮时触发,第二个是单击 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>