5

データベースからのデータを含むテーブルがあります(動的に挿入)。1つの列にチェックボックスを挿入します。ここで、そのうちの 1 つを選択して次のフォームに送信します (1 つの製品を選択し、プロパティを別のフォームに送信します。このフォームでは、選択した製品のみのプロパティを表示する必要があります)。しかし、th:field="*{}" にどのような値が挿入されているのかわかりません。多くの解決策を試しましたが、うまくいきません。すべての製品テーブルを含む私のhtmlフォーム:

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

    <table border="1" id="display-data">
        <tr>
            <td>#</td>
            <td>title</td>
            <td>author</td>
            <td>rok</td>
            <td>cena</td>
            <td></td>
        </tr>
        <tr th:each="produkt, pozycja : ${oferta}">
            <td th:text="${pozycja.count}"></td>
            <td><span th:text="${produkt.tytul}"></span></td>
            <td><span th:text="${produkt.autor}"></span></td>
            <td><span th:text="${produkt.rok}"></span></td>
            <td><span th:text="${produkt.cena}"></span></td>
            <td>
                <input type="submit" value="zamow"/>
                <!-- <a th:href="@{/zamowienie}">zamow</a> -->
            </td>
            <td>
                <label>zamow</label>
                <input type="checkbox" th:field="*{produkt}" th:value="${produkt}"/>
            </td>
        </tr>
    </table>
</form>

選択した製品を表示するフォーム:

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

    <table border="1" id="display-data">
        <tr align="center">
            <td colspan="2">twoje zamowienie</td>
        </tr>
        <tr>
            <td>tytul</td>
            <td><span th:text="${produkt.tytul}"></span></td>
        </tr>
        <tr>
            <td>autor</td>
            <td><span th:text="${produkt.autor}"></span></td>
        </tr>
        <tr>
            <td>rok</td>
            <td><span th:text="${produkt.rok}"></span></td>
        </tr>
        <tr>
            <td>cena</td>
            <td><span th:text="${produkt.cena}"></span></td>
        </tr>
        <tr>
            <td>data zlozenia zamowienia</td>
            <td><span th:text="${datazam}"></span></td>
        </tr>
    </table>
</form>

手伝ってくれてありがとう。

4

2 に答える 2

11

これがあなたが求めている答えかどうかはわかりませんが、http://www.thymeleaf.org/doc/html/Thymeleaf-Spring3.html#checkbox-fieldsで例を見つけることができます。

Spring MVC で Thymeleaf のチェックボックスを使用する方法を説明する簡単な例を次に示します。

コントローラ:

@RequestMapping(value = "/showForm", method=RequestMethod.GET)
public String showForm(Model model) {
  List<String> allItems = new ArrayList<String>();
  allItems.add("value1");
  allItems.add("value2");
  allItems.add("value3");
  model.addAttribute("allItems", allItems);

  Foo foo = new Foo();
  List<String> checkedItems = new ArrayList<String>();
  // value1 will be checked by default.
  checkedItems.add("value1");
  foo.setCheckedItems(checkedItems);
  model.addAttribute("foo", foo);

  ...
}

@RequestMapping(value = "/processForm", method=RequestMethod.POST)
public String processForm(@ModelAttribute(value="foo") Foo foo) {
  // Get value of checked item.
  List<String> checkedItems = foo.getCheckedItems();
  ...
}

html:

<form action="#" th:action="@{/processForm}" th:object="${foo}" method="post">
  <div th:each="item : ${allItems}">
    <input type="checkbox" th:field="*{checkedItems}" th:value="${item}" />
    <label th:text="${item}">example</label>
  </div>
  <input type="submit" />
</form>

Foo.java:

public class Foo {
  private List<String> checkedItems;

  public List<String> getCheckedItems() {
    return checkedItems;
  }

  public void setCheckedItems(List<String> checkedItems) {
    this.checkedItems = checkedItems;
  }
}

お役に立てれば。

于 2013-07-18T12:35:52.147 に答える