Spring MVC Thymeleaf Ошибка при попытке подключить форму к контроллеру - PullRequest
0 голосов
/ 02 марта 2019

В хорошей борьбе с Spring / Thymeleaf решили попробовать превратить консольное приложение в веб-приложение.

У меня есть форма с 3 разными кнопками, каждая из которых использует свой метод вконтроллер.Затем я намереваюсь заставить методы каждый делать свое дело и возвращать результаты по мере необходимости, но в настоящее время получаю сообщение об ошибке в отношении параметров.

При просмотре в Интернете кажется, что я следую примерудано, но не радость, любая помощь очень ценится.

Исключение:

    This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sat Mar 02 17:08:48 GMT 2019
There was an unexpected error (type=Bad Request, status=400).
Parameter conditions "action=tb_name" not met for actual request parameters: tb_name={tb_name}

Контроллер:

 @RequestMapping(value="/sparql", method=RequestMethod.POST, params="action=tb_age")
    public String tb_age(Model model){
        String queryString = "tb_age query";
        String queryResult = "tb_age result";

        model.addAttribute("sparqlQuery", queryString);
        model.addAttribute("sparqlAnswer", queryResult);
        model.addAttribute("now", dateTime);

        return "sparqlanswer";
    }

    @RequestMapping(value="/sparql", method=RequestMethod.POST, params="action=dc_age")
    public String dc_age(Model model){
        String queryString = "dc_age query";
        String queryResult = "dc_age result";

        model.addAttribute("sparqlQuery", queryString);
        model.addAttribute("sparqlAnswer", queryResult);
        model.addAttribute("now", dateTime);
        return "sparqlanswer";
    }

Форма HTML-страницы:

   <p>
        <form action="#" data-th-action="@{/sparql/question}" data-th-object="${model}" method="post">
            <p>How old is tb</p><button type="submit" name="action" value="tb_age">Ask?</button>
            <p>How old is dc</p><button type="submit" name="action" value="dc_age">Ask?</button>
            <p>What is the birth name of tb?</p><button type="submit" name="tb_name" value="tb_name">Ask?</button>
        </form>
    </p>

HTML-страница результатов, которую я пересылаю:

  <p>Results:</p>
    <p>Question asked: </p>
    <p>Sparql Query: <strong th:text="${sparqlQuery}"></strong></p>
    <p>Answer: <strong th:text="${sparqlAnswer}"></strong></p>

Ответы [ 2 ]

0 голосов
/ 03 марта 2019
@RequestMapping(value = "/sparql/question", method = RequestMethod.POST, params = "tb_age")public String tb_age(Model model) {
return "sparqlanswer   tb_age";}

@RequestMapping(value = "/sparql/question", method = RequestMethod.POST, params = "dc_age")
public String dc_age(Model modeld) {
    return "sparqlanswer  dc_age";}

@RequestMapping(value = "/sparql/question", method = RequestMethod.POST, params = "tb_name")public String tb_name(Model model) {
return "sparqlanswer  tb_name";}
0 голосов
/ 03 марта 2019

Вы неправильно используете значение params.Params - это список имен параметров, но не список name = values.Также есть атрибут formaction, который вы можете добавить к своей кнопке для публикации по определенному URL.

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