【问题标题】:checkbox not passing parameter when unchecked in spring mvc在spring mvc中未选中时复选框未传递参数
【发布时间】:2016-05-31 04:32:21
【问题描述】:

我在我的应用程序中使用复选框在 spring 中传递一个值。当我检查它时它工作正常,但是当我取消选中它时问题在于它。它显示错误 -

警告:org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - 处理程序执行导致异常:必需的字符串参数“isFl”不存在

这里 isFl 是我需要通过的复选框的名称。我搜索了很多并在我的程序中应用了许多答案,但没有得到想要的结果。

如果有人知道答案,请帮助提前谢谢。

控制器程序

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public ModelAndView uploadPost(@RequestParam String fileName, @Validated Template template,
                               @Validated TemplateBean templateBean,
                              @RequestParam MultipartFile file, 
      HttpServletRequest request,**@RequestParam String isFl**) throws Exception
      {
        ModelAndView model = new ModelAndView("upload");


        if(isFl!=null){
            addTemplate.setFl(Integer.parseInt(isFl));
        }
        else{
            addTemplate.setFl(0);//false value
        }

jsp文件

 <input id="checkbox" type="checkbox" **name="isFl"** value="1" >Facility letter

还有很多东西,但我只上传了与我的问题相关的内容

【问题讨论】:

  • 您可能希望在此处包含相关代码。
  • 好的,请稍等,我正在上传
  • 这与 spring 无关,而与复选框的工作方式有关。未选中时将没有任何值(请查看 HTML 规范)。不要使用普通标签,而是使用 spring checkbox 标签并将其作为模板 bean 的一部分。
  • 这也导致我尝试过同样的事情

标签: spring spring-mvc


【解决方案1】:

使用必需 = false @RequestParam(value = "isFl", required = false) String isFl

【讨论】:

  • 请解释你的答案,不要只回复裸代码。
【解决方案2】:

添加一个隐藏的输入,前缀“_”添加到如下相同的名称:

<input type="hidden" name="_isFl" value="on" >

【讨论】:

    【解决方案3】:

    ...HttpServletRequest request,@RequestParam Boolean isFl) 那样更改您的代码,因为复选框是一个布尔值。

    必需字符串参数“isFl”不存在

    但参数Boolean isFl 存在于您的表单中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-25
      • 2019-12-12
      • 2015-06-06
      • 2014-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多