Весенние проблемы с тимьяном: шаблон обработки исключений - PullRequest
0 голосов
/ 21 сентября 2018

Я создаю простой веб-сервис с пружиной и тимьяном.Вот код на данный момент: Контроллер:

package com.Basi.CheBBellaEmittente.Pages.Control;


@Controller
public class SimpleController {
    @GetMapping("/nuovo-utente")
    public String viewInserisciUtente(Model model){
        model.addAttribute("nuovoUtente", new Utente());
        return "nuovo-utente";
    }

    @PostMapping("/nuovo-utente")
    public void memorizzaUtente(@ModelAttribute Utente utente){
        System.out.println(utente.getId());
    }
}

Модель:

package com.Basi.CheBBellaEmittente.Pages.Model;

public class Utente {
    private String id;
    private String citta=null;
    private String genere;
    private String data_nascita=null;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCitta() {
        return citta;
    }

    public void setCitta(String citta) {
        this.citta = citta;
    }

    public String getGenere() {
        return genere;
    }

    public void setGenere(String genere) {
        this.genere = genere;
    }

    public String getData_nascita() {
        return data_nascita;
    }

    public void setData_nascita(String data_nascita) {
        this.data_nascita = data_nascita;
    }
}

HTML-страница:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Inserisci un nuovo utente</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <h1>Form</h1>
    <form action="#" th:action="@{/nuovo-utente}" th:object="${com.Basi.CheBBellaEmittente.Pages.Model.Utente}" method="post">
        <p>Id: <input type="text" th:field="*{id}" /></p>
        <p>Città: <input type="text" th:field="*{citta}" /></p>
        <p>Genere: <input type="text" th:field="*{genere}" /></p>
        <p>Data nascita: <input type="text" th:field="*{data_nascita}" /></p>
        <p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
    </form>
</body>
</html>

и ошибка:

2018-09-21 16:51:40.668 ERROR 3132 --- [nio-8080-exec-1] org.thymeleaf.TemplateEngine             : [THYMELEAF][http-nio-8080-exec-1] Exception processing template "nuovo-utente": Exception evaluating SpringEL expression: "com.Basi.CheBBellaEmittente.Pages.Model.Utente" (template: "nuovo-utente" - line 9, col 51)

Итак, что я могу сделать, чтобы справиться с этой ситуацией?Я не знаю, что с этим не так, это очень простой код.Вы можете дать мне какой-то совет?Я полагаю, это проблема с несколькими пакетами, но я не могу понять, что.

Ответы [ 3 ]

0 голосов
/ 22 сентября 2018

В вашем контроллере вы устанавливаете имя атрибута вашей модели на nuovoUtente, поэтому вам нужно выполнить следующее в html:

<form action="#" th:action="@{/nuovo-utente}" th:object="${nuovoUtente}" method="post">

Вы хотите создать и отправить форму.В @GetMapping и @PostMapping вы должны установить разные URL.

Например:

@ GetMapping (/ nuevo-utente-form) и @PostMapping (/ nuevo-utente)

В nuevo-utetente-form.html вы пишете код формы, а в nuevo-utente.html вы пишете код для принятия формы.

0 голосов
/ 24 сентября 2018
th:object="${com.Basi.CheBBellaEmittente.Pages.Model.Utente}"

он должен указывать на фактический объект экземпляр , который вы передаете в своей модели представления, а не на его класс, поэтому, вероятно,

th: object = "$ {utente}"

это то, что должно быть.

0 голосов
/ 21 сентября 2018

Поскольку атрибут вашей модели называется nuovoUtente - model.addAttribute("nuovoUtente", new Utente());, это то, что вы должны использовать в качестве объекта th:.

<form action="#" th:action="@{/nuovo-utente}" th:object="${nuovoUtente}" method="post">

Выражение, подобное этому:${com.Basi.CheBBellaEmittente.Pages.Model.Utente} будет интерпретироваться как: com.getBasi().getCheBBellaEmittente().getPages().getModel().getUtente() - что не имеет смысла.

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