当前位置: 首页 > 知识库问答 >
问题:

从具有Thymeleaf和spring boot的下拉列表中提取所选值

东郭弘方
2023-03-14

我的问题是无法得到下拉列表选择的值,错误是:

字段“admin”上对象“agence”中的字段错误:拒绝值[1];代码[TypeMismatch.agence.admin,TypeMismatch.admin,TypeMismatch.com.example.demo.Entities.AdminStrateur,TypeMismatch];;默认消息[无法将“java.lang.String”类型的属性值转换为属性“admin”的必需类型“com.example.demo.entities.adminstrateur”;嵌套异常为java.lang.IllegalStateException:无法将“java.lang.String”类型的值转换为属性“admin”的必需类型“com.example.demo.entities.adminstrateur”:

AddAgence.html:

<form action="#" th:action="@{/addAgence}" th:object="${agence}" method="post">

                        <div class="row">
                             <div class="form-group col-md-8">
                                <label for="adresse" class="col-form-label">Adresse</label> <input type="text"  class="form-control"  name="adresse"> 
                            </div>
                             <div class="form-group col-md-8">
                                <label for="ville" class="col-form-label">Ville</label> <input type="text"  class="form-control"  name="ville"> 
                            </div>
                             <div class="form-group col-md-8">
                                <label for="admin" class="col-form-label">Administrateur</label>      

                                <select 
                                  class="form-control" th:field="*{admin}">
                                <option value="">Select Admin</option>
                                <option th:each="a: ${admins}"
                                  th:value="${a.codeUtilisateur}"
                                  th:text="${a.nom}"></option>
                                   </select>            
                            </div>
                            <div class="col-md-8">
                                <input type="submit" class="btn btn-primary" value="Add Agence" >
                            </div>

                            <div class="form-group col-md-8"></div>

                        </div>
                    </form>

A

dminController.java:

@GetMapping("signupAgence")
    public String showSignUpForm(Agence agence,Model model) {
        List<Utilisateur> admins=adminServices.getAdmins();
        model.addAttribute("admins", admins);
        return "addagence";
    }
@RequestMapping(value = "/addAgence")
    public String addAgence(Model model, Agence ag) {
        Agence agence = adminServices.addAgence(ag);
        model.addAttribute("agence", agence);
        return "redirect:/agence";
    }

共有2个答案

长孙和悦
2023-03-14

如果您的管理对象具有“id”属性(并且应该),您可以更改:

th:value="${a.codeUtilisateur}"

对此:

th:value="${a.id}"
马弘和
2023-03-14

在这里th:field=“*{admin}”您要将所选选项的值绑定到管理对象(这是一个字符串,因为select选项的值不是对象)。这是错误的,这是你错误的原因。

您必须更改您的命令对象,以便它能够接收其上的管理ID。稍后,您可以在后端搜索完整的管理对象,或者,您可以添加隐藏输入上的所有管理信息,并在提交表单时在控制器中恢复它们(这仍然不会使您不必将select绑定到命令对象中的字符串字段)。

 类似资料:
  • 我已经用来自我的spring控制器(provincia)的内容填充了一个列表,并且我有另一个对象(profile2),我需要从(provincia)获取选定的值...以及我的表单国家/地区中的其他值,等等。 在我的HTML中,我有: 但是我找不到任何关于如何提取与列表中的值相对应的选定键和值(th:select)并将其放回控制器(或者将其移入具有provincia有线对象的de profile2对

  • 我有一个下拉列表,客户端必须选择一个值,然后它将在mysql db中持久化好的,我这样做了,但我希望当客户端选择一个值时,我得到该值,然后我执行if语句示例: 如果选择的值为:CIN,则为compte。setcomptenumber(25364138);就像那样 这是我的控制器: 我的html:

  • 问题内容: 我如何从使用硒与node.js的下拉菜单中获取所有选项 下面是我的代码: 从上面 我如何获取所有选项并在node.js中执行foreach或使用node.js打印选项值。 提前致谢。 问题答案:

  • 我正在使用Bootstrap 3和JavaScript创建我自己的ComboBox。 这种方法非常有效,直到我想在页面上重复多次这个“组合框”。问题在于JQuery函数查找任何/所有。 如何将JQuery更改为仅查找ID为demolist的UL并获取其选定值? 我尝试了以下方法,但没有成功: 我尝试了,但不会触发函数: 我尝试调用#demolist的单击,但获取#demolist的所有列表项的HT

  • 问题内容: 我想创建一个包含国家/地区的下拉列表,并创建一个包含城市的第二个下拉列表,这取决于第一个列表中的选定值。并且城市列表应动态更改。在视图(Thymeleaf)中,我有一个from控制器。CountryModel的名称应该显示在第二个下拉列表中,而Set应该显示在第二个(相关的)下拉列表中。 在这里,我创建第一个下拉列表: 那么如何创建第二个下拉列表,该列表取决于第一个列表中的所选国家/地

  • 问题内容: 通常,我使用它来返回所选选项的值,但这一次它不起作用。所选标签的ID HTML代码 问题答案: 对于下拉选项,您可能想要这样的东西: 之所以不能解决问题,是因为单击选项不会更改下拉菜单的值,它只是将属性添加到作为下拉菜单的 子 项的所选选项中。