我必须用Spring编写一个portlet,它只是获取一些用户输入。
首先,我在控制器的render方法中将一个自定义对象放到Model中。在jsp文件中,我可以访问此对象,并使用表单我想设置对象的参数。 (我使用<form:form ...>
来设置值。)
在提交按钮之后,我想使用@ModelAttribute
参数获取具有所请求方法的对象。但是对象的参数不变,它们是空的。如果我在将对象添加到模型之前设置其中一个,我将在提交按钮后获得此值,但我无法更改它。
请求的方法使用@ActionMapping(params = "action=actionName")
这是控制器:
@Controller(value = "SpringMVCController")
@RequestMapping("VIEW")
public class SpringMVCController {
@RenderMapping
public String handleRenderRequest(RenderRequest request, RenderResponse response, Model model){
model.addAttribute("reservation", new Reservation());
return "defaultPage";
}
@ActionMapping(params = "action=addReservation")
public void addReservation(@ModelAttribute("reservation") Reservation reservation, BindingResult result,
ActionRequest request, ActionResponse response) {
System.out.println(reservation.getUrl());
}
}
这是jsp:
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<portlet:defineObjects/>
<portlet:actionURL var="addReservationURL">
<portlet:param name="action" value="addReservation"></portlet:param>
</portlet:actionURL>
<form:form method="POST" modelAttribute="reservation" action="${addReservationURL}">
<table>
<tr>
<td>From where(URL): </td>
<td><form:input path="url"/></td>
</tr>
<tr>
<td><input type="submit" value="OK" /></td>
</tr>
</table>
</form:form>
答案 0 :(得分:0)
刚试过小春portlet的例子。我的表格也没有提交,但后来我发现了 Spring MV Porlet ActionMapping is not working
然后我将我的弹簧版本更改为3.2.3.RELEASE但这没有效果,表单仍未提交。 之后我将spring form标签更改为纯html表单标签,一切都变好了。
<form method="post" action="${url}">