这是我的Spring控制器:
@Controller
public class ReportsController {
@RequestMapping(value = "/reports.html", method = RequestMethod.GET)
public String getReportsPage(HttpServletRequest request, HttpServletResponse response, ModelMap map) {
map.addAttribute("searchCriteria", new SearchCriteria());
return "reports";
}
@RequestMapping(value = "/reports.html", method = RequestMethod.POST)
public String generateReport(@ModelAttribute SearchCriteria searchCriteria, HttpServletRequest request, HttpServletResponse response, ModelMap map) {
log.info(searchCriteria.toString());
return "reports";
}
}
这是我的JSP文件中的表单:
<form:form modelAttribute="searchCriteria" class="form-inline">
<div class="form-group">
<label for="startDate">Start Date</label>
<form:input path="startDate" />
</div>
<div class="form-group">
<label for="endDate">End Date</label>
<form:input path="endDate" />
</div>
<button type="submit">Generate Report</button>
</form:form>
我尝试将method
和action
添加到form
标记并分别设置为post
和http://bjpeter.company.com:8080/appName/reports.html
,但POST方法确实如此不被打电话。
每当我转到该页面时都会调用GET方法,这就是我想要的,但是当我提交表单时,我的控制器中的POST方法没有被调用,并且返回了一个空白页面。
任何想法都将不胜感激!
答案 0 :(得分:0)
您需要在表单上正确设置操作。 检查一下: http://www.tutorialspoint.com/spring/spring_mvc_form_handling_example.htm
然后它会起作用。像这样:
<form:form method="POST" action="/reports">
此外,您需要指定一个View Resolver,配置前缀和后缀,从链接中阅读教程。