EL1007E: Свойство или поле 'fieldName' не может быть найдено в null - PullRequest
0 голосов
/ 25 ноября 2018

Добрый вечер, у меня больше нет решения ... Я не решался обратиться за помощью, но я в тупике.Я работаю над проектом Spring boot 2.0.5 Spring MVC 5.0.9, ThymeLeaf 3.0.9, который должен быть реализован в течение нескольких недель. Я столкнулся с проблемой уже несколько недель ... провел исследование и попробовал все возможные решенияи у меня все та же проблема.Фактически, мой контроллер не привязывает переменные моей модели к моему представлению ... он всегда отображает "EL1007E: Свойство или поле 'fieldName' не может быть найдено в null" .. Я немного попробовал все (так как мой код в порядке)..

  1. Обновление и понижение JDK / JRE и сопоставление их с версией Eclipse сработало один раз, дало мне необходимую информацию, но затем вернуло ту же проблему.
  2. Использование ModelAndViewвместо строки для повторной загрузки веб-страниц

  3. mvn clean / mvn install / mvn зависимость: разрешить ... каждая найденная команда полезна

  4. удаление ./m2 репозиторий для ненужных зависимостей
  5. даже установка нового рабочего пространства .. компиляция отладки и я действительно застрял .. не могли бы вы дать мне несколько советов, пожалуйста !!

<!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";
    }
}

, поэтому я ничего не сделал в моем контроллере, но сделал это, на мой взгляд: я проверял, существует ли мой объект с 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>

1 Ответ

0 голосов
/ 25 ноября 2018

OK.Так что проблема очень проста.Ваше представление имеет следующую строку кода:

${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 равно нулю.

Так просто.Если вы хотите, чтобы на странице отображалось название компании, эта компания должна существовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...