JSP在表单中设置布尔值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP在表单中设置布尔值相关的知识,希望对你有一定的参考价值。

我有一个模型:

public class Header {
    private Boolean SERVICE;
}

控制器:

@RequestMapping("mymodel/Edit")
public ModelAndView mymodelEdit(
        @ModelAttribute("mymodel") Mymodel mymodel,
        @RequestParam String id) {      

    Mymodel old_mymodel = mymodelService.getMymodel(id);
    Map<String, Object> map = new HashMap<String, Object>();            
    map.put("old_mymodel", old_mymodel);
    return new ModelAndView("mymodel/mymodelEditView", "map", map);
}

JSP表单

<c:set var="old_mymodel" value="${map.old_mymodel}" />
<form:form method="POST action="/mymodel/Save" modelAttribute="mymodel">
    <tr>
        <td>Сервис :</td>
        <td>
            <form:checkbox path="SERVICE" value="${old_mymodel.SERVICE}">                 
            </form:checkbox>
        </td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" value="Save" /></td>
    </tr>
    </table>
</form:form>

我的问题:我无法将db中的值设置为表单值,即当SERVICE值为true时,不选中复选框。

答案

您尝试访问模型的方式与您填充模型的方式不符。

我建议你将代码更改为:

@RequestMapping("mymodel/Edit")
public ModelAndView mymodelEdit(
        @ModelAttribute("mymodel") Mymodel mymodel,
        @RequestParam String id) {      

    Mymodel old_mymodel = mymodelService.getMymodel(id);
    return new ModelAndView("mymodel/mymodelEditView", "model", old_mymodel);
}

这是假设Mymodel看起来像:

public class Mymodel {
   private Header old_header;
}

您在模型的各个部分中使用的名称也可能存在一些问题。我强烈建议您遵守JavaBean命名约定

另一答案

首先要将map的值设置为变量,如下所示

<c:set var="old_header" value="${map.old_mymodel}" />

所以你必须使用这个变量而不是map来访问SERVICE布尔值。

所以应该像下面这样访问它

<td><form:checkbox path="SERVICE" value="${old_header.SERVICE}"></form:checkbox></td>

代替

<td><form:checkbox path="SERVICE" value="${old_mymodel.SERVICE}"></form:checkbox></td>

你在哪里使用old_mymodel

假设下面的代码返回正确的模型

Mymodel old_mymodel = mymodelService.getMymodel(id);

以上是关于JSP在表单中设置布尔值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 INI 配置文件中设置布尔值?

如何在 SQL 中设置布尔值

根据布尔值更改 Xamarin 表单标签的文本

如何在JSP中设置文件上传中的默认值

在 Twig 中设置 Symfony 2 表单字段的默认值

在片段中设置文本颜色