Spring Boot Thymeleaf View의 일부를 동적으로 변경
7046 단어 spring-bootKotlinThymeleaf
목적
선택 상자에서 선택한 내용에 따라 연결되는 목록을 동적으로 (화면을 다시로드하지 않고 부분적으로) 변경합니다.
환경
Spring Boot
Thymleaf
Kotlin
완성형 이미지
선택한 강좌에 따라 개최 시간이 바뀌는 예
방법
Thymleaf의 fragment를 이용해, 일부의 DOM만 렌더링 시킨다.
또한 선택 상자를 눌렀을 때의 요청에 대해서는 ajax를 사용합니다.
처리 흐름
Spring Boot
Thymleaf
Kotlin
완성형 이미지
선택한 강좌에 따라 개최 시간이 바뀌는 예
방법
Thymleaf의 fragment를 이용해, 일부의 DOM만 렌더링 시킨다.
또한 선택 상자를 눌렀을 때의 요청에 대해서는 ajax를 사용합니다.
처리 흐름
Thymleaf의 fragment를 이용해, 일부의 DOM만 렌더링 시킨다.
또한 선택 상자를 눌렀을 때의 요청에 대해서는 ajax를 사용합니다.
처리 흐름
상세
testview.html
<!-- 部分的にレンダリングしたい部分 -->
<div th:fragment="test-fragment">
<label for="target">ご希望の時間帯 ※他の時間帯は、お問い合わせ欄に記載ください</label>
<select id="target" th:field="*{course_id}" th:onchange="updateCourseDateList(this.value)">
<option th:each="courseDate : ${courseDates}"
th:value="${courseDate.id}"
th:text="${courseDate.holding_date}"></option>
</select>
</div>
.
.
.
<script type="text/javascript">
function updateCourseDateList(selectedId) {
url = '/updateCourseDate/' + selectedId;
var targetElement = document.getElementById("target");
$.ajax({
method: 'POST',
data: {},
url: url
}).then(
function(data) {
targetElement.outerHTML = data;
},
function() {
alert("error");
});
}
</script>
testController
@PostMapping("updateCourseDate/{selectedId}")
fun updateCourseDateList(model: Model, @PathVariable(value= "selectedId") selectedId: Int): String {
model.addAttribute("course_id",xxxx)
model.addAttribute("courseDates", xxxxx)
return "testview :: test-fragment"
// return 時に 部分的にレンダリングしたい部分のtest-fragmentを指定する
}
Reference
이 문제에 관하여(Spring Boot Thymeleaf View의 일부를 동적으로 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yukiyoshimura/items/5c49b40101c86e6a4ff3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)