EL1007E:找不到属性或字段“ fieldName”为空

时间:2018-11-24 22:16:04

标签: spring-mvc spring-boot thymeleaf

晚上好,我不再有解决方案了。我一直在犹豫寻求帮助,但我却陷入困境。 我正在研究Spring Boot 2.0.5 Spring MVC 5.0.9,ThymeLeaf 3.0.9项目,需要在数周内取消..我已经有几个星期遇到问题了...做了我的研究并尝试了所有可能的解决方案和我仍然有同样的问题。 实际上,我的控制器未将我的模型变量绑定到我的视图...它始终呈现“ EL1007E:在null上找不到属性或字段'fieldName'”。 我已经尝试了一切(因为我的代码还不错)。

  1. 升级和降级JDK / JRE并将其与eclipse版本匹配一次,让我了解了我所需的信息,但随后又遇到了同样的问题。
  2. 使用ModelAndView代替String表示网页

  3. mvn clean / mvn install / mvn依赖项:解决...我发现有帮助的每条命令

  4. 删除./m2存储库中的不必要依赖项
  5. 甚至设置新的工作区..编译调试 我真的被卡住了.. 你能给我一些建议吗!

x=10

<!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>

所以我在控制器中什么也没做,但是在我看来是这样的: 我用th:if

测试了我的对象是否存在
@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";
    }
}

1 个答案:

答案 0 :(得分:0)

好。因此,问题仍然很简单。您的视图具有以下代码行:

${paramSociete.nomSociete}

因此,它尝试显示模型属性nomSociete的属性paramSociete。错误消息告诉您

Property or field 'nomSociete' cannot be found on null 

因此paramSociete为空。这意味着没有这样的模型属性。让我们检查。在显示该页面之前,您是否已在模型中添加了这样的属性?映射到浏览器位置栏中URL的控制器方法只有

@RequestMapping(value="/")
public String showTest() {
    System.out.println("Here we go !!");
    return "ThymeTest";
}

因此它显示您的视图,但是不,模型中根本没有属性。这说明paramSociete为空。

就这么简单。如果要在页面上显示公司名称,则该公司必须存在。