##環境
spring 2.4
java11
mac OS
##実現したいこと
index.htmlとshow.htmlで変数を生成し、その変数をfooter.htmlで使用。
その変数をaタグのhref値に組み込みページ毎にリンク先が変わるものを作りたいと考えていました。
しかし、th:hrefは機能せずリンクが生成されない状況となってしまいました。
##やってみたこと
footer.htmlのth:hrefでローカル変数を参照するとき、
リテラル置換で記述してみました。
しかし、値はnullになりました。
<footer th:fragment="footer1"> <div class="icon-wrapper d-flex"> <a href="#" th:href="@{| ${top} |}" class="d-block"><i class="fas fa-search"></i></a> <a href="#" th:href="@{| ${liked} |}" class="d-block"><i class="fas fa-thumbs-up"></i></a> <a href="#" th:href="@{| ${message} |}" class="d-block"><i class="fas fa-comment-dots"></i></a> <a href="#" th:href="@{| ${show} |}" class="d-block"><i class="far fa-user-circle"></i></a> </div> </footer>
##ソースコード
footer.html(フラグメント)
<!DOCTYPE html> <html lang="ja" xmlns:th="http://www.thymeleaf.org"> <footer th:fragment="footer1"> <div class="icon-wrapper d-flex"> <a href="#" th:href="@{${top}}" class="d-block"><i class="fas fa-search"></i></a> <a href="#" th:href="@{${liked}}" class="d-block"><i class="fas fa-thumbs-up"></i></a> <a href="#" th:href="@{${message}}" class="d-block"><i class="fas fa-comment-dots"></i></a> <a href="#" th:href="@{${show}}" class="d-block"><i class="far fa-user-circle"></i></a> </div> </footer> </html>
index.html(呼び出し元①)
<!DOCTYPE html> <html lang="ja" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"> <link th:href="@{/css/style.css}" rel="stylesheet"> <script src="https://kit.fontawesome.com/b24292ab52.js" crossorigin="anonymous"></script> <title>Document</title> </head> <body> <main> <div class="container"> <div class="search-wrapper"> <h2>さがす</h2> <form method="get"> <input type="text"> <button><i class="fas fa-search"></i></button> </form> </div> <table> <tr th:each="user: ${users}"> <td class="red" th:text="${user.name}"></td> <td th:text="${user.profile}"></td> </tr> </table> </div> </main> <th:block th:with="top=${'/users'}, liked=${'/users/liked'}, message=${'/users/message'}, show=${'/uesrs/show'}"> </th:block> <div th:replace="/commons/footer::footer1"></div> </body> </html>
show.html(呼び出し元②)
<!DOCTYPE html> <html lang="ja" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"> <link th:href="@{/css/style.css}" rel="stylesheet"> <script src="https://kit.fontawesome.com/b24292ab52.js" crossorigin="anonymous"></script> <title>Document</title> </head> <body> <main> <div class="container"> <p sec:authentication="principal.user.name"></p> <p sec:authentication="principal.user.email"></p> <p sec:authentication="principal.user.image"></p> <p sec:authentication="principal.user.profile"></p> <p sec:authentication="principal.user.age"></p> <p sec:authentication="principal.user"></p> formです。 <form th:action="@{edit}" action="#" method="get"> <input type="hidden" name="key" th:value="${key}"> <button type="submit">edit</button> </form> </div> </main> <th:block th:with="top=${'/users'}, liked=${'/users/liked'}, message=${'/users/message'}, show=${'show'}"> <div th:replace="/commons/footer::footer1"></div> </body> </html>
アドバイスいただきたいです。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー