В соответствии с этим (Не получается получить HashMap на контроллер в Spring MVC) ответом в который меня ткнули в предыдущем вопросе сделал свой пример. Дебагер показывает что "questionid" возвращает корректное значение а вот Map возвращает "null". Собственно как решить?
Мой контроллер:
@Controller
public class FlowController {
@Autowired
private TestInterfaceService testService;
@Autowired
private ResultCalcInterfaceService resCalc;
@Autowired
private UserService userService;
@Autowired
private SecurityService securityService;
@Autowired
private QuestionInterfaceService questionService;
@Autowired
private ResultInterfaceService resService;
private static Map<Long, Boolean> listAnswers = new HashMap<Long, Boolean>();
@RequestMapping(value = "/testPassing/{id}", method = RequestMethod.GET)
public String testPassing(@PathVariable("id") long id, Model model) {
Test test = this.testService.getFullTestById(id);
model.addAttribute("ourTest", test);
return "testPassing";
}
@RequestMapping(value = "/passing/{id}")
public String startPassing(@PathVariable("id") long id, @RequestParam(required = false) Integer qId, Model model) {
Test test = this.testService.getFullTestById(id);
Date date = resService.addResult(test, userService.findByUsername(securityService.getName()));
model.addAttribute("passingTest", test);
int pageSize = test.getQuestions().size();
List<Question> questions = test.getQuestions();
model.addAttribute("questionSize", test.getQuestions().size());
SimpleDateFormat formatter = new SimpleDateFormat("MMM d, yyyy HH:mm:ss", Locale.ENGLISH);
String dateString = formatter.format(date);
model.addAttribute("ourDate", dateString);
model.addAttribute("Long", new Long(0));
if (qId == null || qId < 1 || qId > pageSize) {
qId = 1;
model.addAttribute("questionId", questions.get(qId).getId());
model.addAttribute("question", questions.get(qId));
listAnswers = questionService.getAnswerList(questions.get(qId));
UserAnswerForm userAnswerForm = new UserAnswerForm();
userAnswerForm.setMap(listAnswers);
System.out.println(userAnswerForm.getMap());
model.addAttribute("userAnswerForm", userAnswerForm);
} else if (qId <= pageSize) {
model.addAttribute("questionId", qId);
model.addAttribute("question", questions.get(qId - 1));
listAnswers = questionService.getAnswerList(questions.get(qId - 1));
// System.out.println(listAnswers.get(new Long(48)));
UserAnswerForm userAnswerForm = new UserAnswerForm();
// System.out.println(userAnswerForm.getList().get(new Long(48)));
userAnswerForm.setMap(listAnswers);
// System.out.println(userAnswerForm.getList().get(new Long(48)));
model.addAttribute("userAnswerForm", userAnswerForm);
}
return "testPassing";
}
@RequestMapping(value = "/setAnswer", method = RequestMethod.POST)
public String setAnswer(@ModelAttribute("userAnswerForm") UserAnswerForm userAnswerForm, Model model) {
Question question = questionService.getQuestionById(userAnswerForm.getQuestionid());
System.out.println(userAnswerForm.getMap().get(new Long(48)));
Map<Long, Boolean> listAnswers2 = userAnswerForm.getMap();
resCalc.setAnswer(userService.findByUsername(securityService.getName()), question, listAnswers2);
Test test = question.getqTest();
return "redirect:/passing/" + test.getId();
}
}
Мой jsp:
<form:form method="post"
action="${pageContext.request.contextPath}/setAnswer"
modelAttribute="userAnswerForm">
<input type="hidden" id="questionid" name="questionid"
value="${question.id}" />
<c:forEach items="${userAnswerForm.map}" var="item">
<label>${item.key}</label>
<input type="checkbox" name="map['${item.key}']"
value="${item.value}">
<br>
</c:forEach>
<input type="submit" value="Отправить">
</form:form>
Класс ЮзерФормы:
public class UserAnswerForm {
private Map<Long, Boolean> map = new HashMap<Long, Boolean>();
private long questionid;
public long getQuestionid() {
return questionid;
}
public void setQuestionid(long questionid) {
this.questionid = questionid;
}
public Map<Long, Boolean> getMap() {
return map;
}
public void setMap(Map<Long, Boolean> list) {
this.map = list;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Так получилось, что InputMethodManager не хранит в себе текущее состояние клавиатуры, под "состояние" подразумевается видна или не видна системная...
У меня имеется список с разными количествами монетТипа этого:
Возможно ли как то чтобы в разметке, содержащую ScrollView сделать так чтобы он не пролистывался вниз, дело в том что видимо какой то баг, при переходе...
С консоли нужно считать переменную типа double, затем умножить ее на 6, округлить в меньшую сторону, результат поместить в переменную типа int и вывести...