在SpringBoot中使用Thymeleaf的下拉列表

时间:2019-05-07 06:05:23

标签: java spring-boot thymeleaf

我正在尝试使用Springboot中的ArrayList加载下拉列表,因为我是springboot的新手。

我已经尝试过,但没有按预期工作。

请找到我尝试过的代码,如下所示:

Java代码:

@Controller
public class DemoController {

@GetMapping("/create")
     public String create(Model model) {

      model.addAttribute("create", new Demo());

      return "create";

     }

     public void countriesList(Model model) {

          List<String> countryList = new ArrayList<>();

          countryList.add("US");
          countryList.add("UK");

          model.addAttribute("countries", countryList);

       }
}

HTML:

<form action="#" th:action="@{/create}" th:object="${create}" method="post">

        <select th:field="*{country}">
             <option value=""> -- </option>
             <option th:each="country : ${countries}" th:value="${country}" th:text="${country}"></option>
        </select>
</form>

最后没有错误,只是使用--加载到下拉列表中,而不加载国家/地区。

请帮助我。

2 个答案:

答案 0 :(得分:1)

您从未调用过将模型添加国家/地区的功能...

@Controller
public class DemoController {

 @GetMapping("/create")
 public String create(Model model) {

  model.addAttribute("create", new Demo());
  countriesList(model); // this line is needed
  return "create";

 }

 private void countriesList(Model model) {

  List < String > countryList = new ArrayList < > ();

  countryList.add("US");
  countryList.add("UK");

  model.addAttribute("countries", countryList);

 }
}

答案 1 :(得分:0)

尝试使用此代码块

 <span th:each="country:${countries}" th:remove="tag">
          <option th:value="${country}" th:text="${country}"></option>
    </span>