0

我有一个表单,根据选择状态([checkboxOn/checkboxOff])是否应该出现一个复选框。显示复选框时,默认情况下应选中。

如何处理这种情况,考虑到

  • when select is in 'checkboxOff' state, I would have MyFormObject.isCheckboxOn == false;
  • 当 select 处于“checkboxOn”状态时,该值应该与请求中的一样吗?

所有这些都应该适用于验证错误回发,以及显示新表单时和有效表单案例。

另外,我想避免在客户端使用 JavaScript。

这是一些需要扩展的代码:

class MyFormObject {
  private String selectValue;
  private boolean isCheckboxOn;
  ...
}

和两个 Spring 控制器的方法:

@RequestMapping(method = RequestMethod.GET)
public ModelAndView showForm() {
  return new ModelAndView('/form.jsp', 'command', new MyFormObject());
}

@RequestMapping(method = RequestMethod.POST)
public ModelAndView processSubmit(BindingResult result, MyFormObject command) {
  if (result.hasErrors()) {
    return new ModelAndView('/form', 'command', command);
  }
  ...
  return new ModelAndView('redirect:/success.jsp');
}
4

1 回答 1

0

如果要在 isCheckboxOn 设置为 false 时从视图中排除复选框字段,可以在 JSP 中用 ac:if 包围复选框字段:

<c:if test="isCheckboxOn">
    (your checkbox <input> tag goes here)
</c:if>

要默认选中该框,您可以使用Spring 的表单标签库直接绑定到模型中的复选框字段,或者您可以使用另一个在您的标签c:if中添加一个。checked<input>

于 2010-12-30T19:42:53.373 回答