Можно ли динамически установить портлет Spring MVC: actionURL portlet: param, используя javascript? Я попытался с помощью следующего кода, но значение идентификатора всегда сталкивается как ноль для контроллера. Я убедился, что при настройке portlet: param вручную правильно передается значение:
<portlet:param name="id" value="2" />
Я также проверил, что значение в javascript установлено правильно и не является нулевым.
(Примечание. Я изменил имена переменных и т. Д. По сравнению с исходным кодом, чтобы упростить его и скрыть, поскольку это код моего работодателя.)
JSP:
<portlet:actionURL var="modifyURL">
<portlet:param name="do" value="modify" />
<portlet:param name="id" value="${model.id}" />
</portlet:actionURL>
...
<form:form action="${modifyURL}" id="modifyForm" modelAttribute="model">
<form:hidden path="id" id="id" />
</form:form>
Javascript вызывается при нажатии на URL обновления:
function update() {
document.forms[0]["id"].value = selectedId;
document.forms[0].submit();
}
Контроллер:
@RequestMapping(params = {"do=modify"})
public void modify(@ModelAttribute("model") Model model,
@RequestParam(value = "id", required=true) Long id,
ActionRequest request, ActionResponse response,
SessionStatus sessionStatus, ModelMap modelMap) {
....