Thymeleaf 행 단위로 데이터 게시

5936 단어 SpringBootThymeleaf

삭제 버튼을 눌러 ID 정보를 얻는 예





같은 <td> 내에 hidden과 submit 타입의 <input>을 설치한다.


<td>
 <form method="post" th:action="@{/shopping_list}">
   <input type="hidden" name="id" th:value="*{id}">
   <input type="submit" value="削除">
 </form>
</td>  



뷰측


<table border="5" frame="box" cellpadding="15">
  <tr>
    <th>ID</th>
    <th>商品</th>
    <th>備考</th>
    <th></th>
  </tr>

  <tr th:each="shoppingList:${List}" th:object="${shoppingList}">
    <td th:text="*{id}"></td>
    <td th:text="*{itemName}"></td>
    <td th:text="*{remark}"></td>
    <td>
      <form method="post" th:action="@{/shopping_list}">
        <input type="hidden"  name="id" th:value="*{id}">
        <input type="submit" value="削除">
      </form>
    </td>  
  </tr>
</table>



포인트
해설
비고


input type="hidden"
브라우저에는 표시되지 않지만 컨트롤러에 값을 전달할 수 있습니다. htps : //로 ゔぇぺぺr. 모잖아. 오 rg / 음 / cs / u b / HTML / 에멘 t / amp t


name="id"th:value="*{id}"
name으로 지정한 값과 Entity 클래스의 변수명이 연결되어 있으므로 name을 생략하거나 th:name="*{id}", name="aaa"등을 해 버리려는 의도한 동작을 하지 않는다 .

input type="submit"
컨트롤러에 양식 값 전달



컨트롤러측


@RequestMapping("/shopping_list")
public String getShoppingList(Model model,ShoppingListForm shoppingListForm,Integer id){

  //リストの削除
  shoppingListService.deleteShoppingList(shoppingListForm);         
  //買い物リストの生成
  List<ShoppingList> List = shoppingListService.findAll();
  model.addAttribute("List",List);       

  return "shopping_list";
}


포인트
해설
비고


Integer id
java의 Entity 클래스로 정의한 필드 변수와 같은 형태로 정의로 하지 않으면, 형태를 해결할 수 없기 때문에 에러가 된다. 덧붙여서 이 예에서는 java의 form 클래스에서 id를 Integer형으로 정의하고 있으므로, 여기에 int나 long로 초기화하면 에러가 된다.



참고



HTML Thymeleaf





SpringBoot

좋은 웹페이지 즐겨찾기