我有一个表单bean如下
public class QuestionPageBean
{
private String statement;
private String options;
// getters and setters
}
下面是GET请求处理程序,它创建一个对象'question'并设置其字段'statement'。它还会填充要显示为“选项”字段的复选框的值列表。该页面显示“声明”和复选框列表。
@RequestMapping(value = "/question", method = RequestMethod.GET)
public ModelAndView initForm()
{
logger.debug("Received request to show question page");
List<String> optionList = new ArrayList<String>();
ModelAndView model=new ModelAndView("question");
QuestionPageBean question=new QuestionPageBean();
question.setStatement("This is the question");
optionList.add("option1");
optionList.add("option2");
optionList.add("option3");
optionList.add("option4");
model.addObject("optionList", optionList);
model.addObject("command", question);
return model;
}
下面是页面的POST方法处理程序,用户从复选框中选择“options”字段的值并提交表单。问题是ModelAttribute'question'获取'options'的值,但'statement'保持为null。
如何在下面的控制器中获取'statement'字段的值(在页面通过上面的GET方法加载时设置)。我有没有spring mvc构造?
@RequestMapping(value = "/question", method = RequestMethod.POST)
public void questionFormSubmit(@ModelAttribute("question")QuestionPageBean question)
{
logger.debug("Question page subimtted");
System.out.println(question.getStatement()); // prints null
System.out.println(question.getOptions()); // prints correct value selected by user
}
答案 0 :(得分:2)
除非从表单传递,否则不会填充语句字段。为表单内的语句创建隐藏字段,然后填充它。