我有一个包含很多问题的页面,他们可以有多个答案。
对于每个问题,它看起来都是这样的:
<div th:each="answer: ${question.answers}">
<input th:type="${question.type == T(test_system.entity.QuestionType).SINGLE ? 'radio' : 'checkbox'}"
type="radio" th:name="${question.id}" th:value="${answer.id}"/>
[[${answer.text}]]
</div>
我想在控制器中获得一个Map<String, String[]>
来处理这个请求。 (关键是问题的id,值是这个问题的答案)
我在控制器中有这个代码:
@RequestMapping(value = "/work/{id}/finish", method = RequestMethod.POST)
public String sendTestAnswers(@PathVariable final long id, @RequestParam final Map<String, String[]> data, final HttpServletRequest request, final Model model) {
...
}
但是在数据中,我看到Map<String, String>
,每个问题只有一个答案。
同样在request.getParameterMap()中,我看到Map<String, String[]>
包含了我需要的所有值。
如何绑定参数以获取具有我需要的所有数据的准备对象? 我不想直接使用HttpServletRequest。
答案 0 :(得分:1)
我认为您应该尝试使用MultiValueMap:http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/MultiValueMap.html
它更适合这类数据。