Использование списка отображения ftl из метода POST - PullRequest
1 голос
/ 31 октября 2019

Извините за мой английский! Я новичок в весне и FTL. Я хочу отобразить firstName и lastName с использованием шаблона <#list, но я не смог распознать какие-либо последовательности в моем методе POST, может кто-нибудь объяснить мне. Опять же, я новичок, и, пожалуйста, не судите меня, если я не понимаю, что я должен. Я использую CUBA STUDIO 6.8 и IDEA. Также я работаю над этой задачей в модуле портала

. Таким образом я добавляю firstName и lastName в базу данных, используя мою форму ftl и контроллер портала:

@GetMapping("/add")
public String add(Model model){
    PersonPojo personPojo = new PersonPojo();
    model.addAttribute("personPojo", personPojo);
    return "add";
}

@PostMapping("/add")
public String save(Model model, @ModelAttribute("personPojo") PersonPojo personPojo){

    String firstName = personPojo.getFirstName();
    String lastName = personPojo.getLastName();
    PersonPojo newPerson = new PersonPojo(firstName, lastName);

    Person standardEntity = metadata.create(Person.class);
    standardEntity.setFirtName(newPerson.getFirstName());
    standardEntity.setLastName(newPerson.getLastName());
    dataManager.commit(standardEntity);

    return "redirect:/allPersons";
}

Моя форма ftl:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post" name="person">
    First Name: <input type="text" name="firstName"> <br>
    Last Name: <input type="text" name="lastName"> <br>
    <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}">
    <input type="submit" value="Create">
</form></body>
</html>

Спасибо!

1 Ответ

0 голосов
/ 01 ноября 2019

Итак, если кому-то интересно, я опубликую свое решение здесь:

 @RequestMapping(value = "/allPersons", method = RequestMethod.GET)
    public String getPersons(Model model) {
            LoadContext loadJohn = new LoadContext(John.class);
            loadJohn.setQueryString("select u from test6$John u");
            model.addAttribute("users", dataService.loadList(loadJohn));
            return "list";
    }

И ftl должен выглядеть так: Проблема, с которой я столкнулся в следующем, была, я не знал, что я должен проверить список на ноль,! "" делает это

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h3>Person List</h3>
<a href="/app-portal/add">Add Person</a>
<br><br>
<div>
    <table border="1">
        <tr>
            <th>First Name</th>
            <th>Last Name</th>
        </tr>
        <#list users as show>
            <tr>
                <td>${show.firstName!""}</td>
                <td>${show.lastName!""}</td>
            </tr>
        </#list>
    </table>
</div>
</body>
</html>

Надеюсь, это поможет таким людям, как я. Кроме того, если кто-то знает, как удалить и обновить данные, пожалуйста, поделитесь. Спасибо!

...