gpt4 book ai didi

spring-mvc - EL1007E : Property or field 'fieldName' cannot be found on null

转载 作者:行者123 更新时间:2023-12-04 14:21:57 32 4
gpt4 key购买 nike

晚上好,我不再有解决方案了..我一直在犹豫是否要寻求帮助,但我已经走投无路了。
我正在开发一个 Spring boot 2.0.5 Spring MVC 5.0.9,需要在几周内交付的 ThymeLeaf 3.0.9 项目......我已经遇到了几个星期的问题......做了我的研究并尝试了所有可能的解决方案我仍然有同样的问题。
事实上,我的 Controller 没有将我的模型变量绑定(bind)到我的 View ......它总是呈现“EL1007E:在空值上找不到属性或字段'fieldName'”..
我几乎什么都试过了(因为我的代码很好)..

  • 升级和降级 JDK/JRE 并将它们与 eclipse 版本匹配一次,我得到了我需要的信息,但又得到了同样的问题。
  • 使用 ModelAndView 而不是 String 来渲染网页
  • mvn clean/mvn install/mvn dependency:resolve ...每个我发现有用的命令
  • 删除 ./m2 存储库以获取不必要的依赖项
  • 甚至设置一个新的工作区..编译调试
    我真的卡住了..
    你能给我一些建议吗!!


  • <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org"
    data-layout-decorate="~{index}">
    <head>
    <meta charset="UTF-8" />
    <title>Page test</title>
    </head>
    <body>
    <div data-layout-fragment="content">
    <div class="container">
    <div class="row">
    <div class="col-sm-6" align="center">

    <form th:action="@{/consulter}" method="get"
    th:object="${paramSociete}">
    <input type="text" name="nomSociete" class="form-control"
    placeholder="AMEN BANK" />
    <button type="submit">Clique moi !!</button>
    </form>
    <br /> <br /> <br /> <br />
    <div>
    <div>
    <label>Nom Banque :</label><Label th:inline="text">
    [[${paramSociete.nomSociete}]]</Label>
    </div>
    <div>
    <label>Reference msg:</Label><Label th:inline="text">[[${paramSociete.initialMsg}]]</Label>
    </div>
    <div>
    <label>chemin dacces:</label> <Label th:inline="text">[[${paramSociete.pathMsgEmis}]]</Label>

    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    </body>
    </html>

    @Controller
    public class ParamSocieteController {
    @Autowired
    private ParamSocieteServiceImpl societeServiceImpl;

    @Autowired
    public void setSocieteServiceImpl(ParamSocieteServiceImpl societeServiceImpl) {
    this.societeServiceImpl = societeServiceImpl;
    }

    @RequestMapping(value="/")
    public String showTest() {

    System.out.println("Here we go !!");
    return "ThymeTest";

    }

    @RequestMapping(value = "/consulter")
    public String afficherAmenBank(Model model, String nomSociete) {
    ParamSociete societe = societeServiceImpl.findSociete(nomSociete);
    if (societe == null) {
    model.addAttribute("paramSociete", new ParamSociete());
    } else {
    model.addAttribute("nomSociete", nomSociete);
    model.addAttribute("paramSociete", societe);
    System.out.println(societe.getNomSociete());
    System.out.println(societeServiceImpl.findSociete(societe.getNomSociete()).toString());
    }
    return "ThymeTest";
    }
    }

    所以我在 Controller 中什么也没做,但在我看来是这样做的:
    我测试了我的对象是否存在于 th:if

    <div th:if="${paramSociete}">
    <div>
    <label>Nom Banque :</label><Label th:inline="text">
    [[${paramSociete.nomSociete}]]</Label>
    </div>
    <div>
    <label>Reference msg:</Label><Label th:inline="text">[[${paramSociete.initialMsg}]]</Label>
    </div>
    <div>
    <label>chemin dacces:</label> <Label th:inline="text">[[${paramSociete.pathMsgEmis}]]</Label>

    </div>
    </div>

    最佳答案

    好的。所以问题很简单。您的 View 具有以下代码行:

    ${paramSociete.nomSociete}

    所以它试图显示属性 nomSociete模型属性 paramSociete .错误信息告诉你
    Property or field 'nomSociete' cannot be found on null 

    所以 paramSociete一片空白。这意味着没有这样的模型属性。让我们检查。在显示该页面之前,您是否在模型中添加了这样的属性?映射到浏览器地址栏中的 URL 的 Controller 的方法只有
    @RequestMapping(value="/")
    public String showTest() {
    System.out.println("Here we go !!");
    return "ThymeTest";
    }

    所以它显示您的 View ,但不,模型中根本没有属性。这解释了 paramSociete一片空白。

    就如此容易。如果您希望页面显示公司名称,则该公司必须存在。

    关于spring-mvc - EL1007E : Property or field 'fieldName' cannot be found on null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53462818/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com