2017-08-28 59 views
2

我正在嘗試使用Thymeleaf渲染電子郵件模板,我希望將主題和正文放在同一個文件中,但是單獨渲染。我不想用春景,只是簡單的SpringTemplateEngine用Thymeleaf渲染片段內容

<!DOCTYPE html> 
<html xmlns:th="http://www.thymeleaf.org"> 
<!--/*@thymesVar id="user" type="com.myapp.user.User"*/--> 
<!--/*@thymesVar id="invitationId" type="java.util.UUID"*/--> 
<head> 
    <title th:fragment="subject">Hello <span th:text="${user.name}"/></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
</head> 
<body> 
<p> 
    Hello <span th:text="${user.name}"></span>,<br> 
    you've been invited to join MyApp. 
</p> 
<p> 
    Click on the following link to confirm your email and setup a password:<br> 
    <a th:href="@{https://myapp.com/accept-invitation(id=${invitationId})}">Accept invitation</a> 
</p> 
<p> 
    Best regards,<br/> 
    <em>The MyApp team</em> 
</p> 
</body> 
</html> 

有幾個問題與此

首先,我無法獲得Thymeleaf渲染<title>

String subject = templateEngine.process(
    templateFile, 
    ImmutableSet.of("subject"), 
    new Context(Locale.ENGLISH, contextVariables) 
); 

只有內容它呈現的文學只有Hello - 它看起來像開幕<title>標籤總是被刪除,並且片段在第一個標籤之後立即被修剪。

當我使整個模板,它返回

<!DOCTYPE html> 
<html> 
<head> 
    Hello <span>pepa</span></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
</head> 
<body> 
<p> 
    Hello <span>pepa</span>,<br> 
... 

使用在<title>下使輸出更好一點

<span th:text="${user.name}" th:remove="tag"></span> 

但開放標籤仍下落不明。

當我理論上能夠正確地呈現標題時,我仍然會將它封裝在一個HTML標記中 - 這顯然不能用作電子郵件主題。有沒有辦法只渲染片段的內容?

我真的很想在同一個模板中同時使用電子郵件主題和正文,例如我想在標題中做一些迭代以從列表生成它 - 我不想做任何字符串串聯,我想在模板中。

有什麼建議嗎?

回答

-1

如果你想只包括您的片段的內容,假設你的片段稱爲your_fragment.html,並放置在/資源/模板/片段你可以這樣做:

<head> 
    <title th:replace="fragments/your_fragment::your_fragment"/></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
</head> 

而your_fragment.html:

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head></head> 
<body> 
    <div th:fragment="your_fragment" th:remove="tag"> 
     Hello <span th:text="${user.name}" th:remove="tag"></span> 
    </div> 
</body> 
</html> 

這將使:

<head> 
    Hello username 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
</head> 
+0

對不起,但我不認爲你已經理解我的問題,因爲這根本不能幫助我 - 如果是這樣,我不知道如何。 –

+0

我以爲你只需要渲染標籤內的文字,上面的代碼就會渲染<title>你好用戶名 juanlumn

+0

是的,沒錯。但是我需要將它輸出的字符串用作電子郵件主題,我不能在主題中放置''標籤。我知道我可以去掉標籤,但是如果thymeleaf實際上可以呈現代碼片段的內容,而沒有包裝標籤,它會更好。 – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1038284119" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">相關問題</div> <ul class="relative_list"> <li> 1. <a href="http://hk.uwenku.com/question/p-amasgphb-br.html" target="_blank" title="SWF:渲染片段不渲染"> SWF:渲染片段不渲染 </a> </li> <li> 2. <a href="http://hk.uwenku.com/question/p-hlmrydbq-ke.html" target="_blank" title="formtastic渲染表單片段"> formtastic渲染表單片段 </a> </li> <li> 3. <a href="http://hk.uwenku.com/question/p-mslcmoha-tk.html" target="_blank" title="CKEditor內容渲染定製"> CKEditor內容渲染定製 </a> </li> <li> 4. <a href="http://hk.uwenku.com/question/p-suxnktml-bgh.html" target="_blank" title="GraphZoomScrollPane不渲染內容"> GraphZoomScrollPane不渲染內容 </a> </li> <li> 5. <a href="http://hk.uwenku.com/question/p-odgpdjxj-bgz.html" target="_blank" title="thymeleaf片段包括"> thymeleaf片段包括 </a> </li> <li> 6. <a href="http://hk.uwenku.com/question/p-pgsizvyj-bh.html" target="_blank" title="使用ListView渲染段內的行?"> 使用ListView渲染段內的行? </a> </li> <li> 7. <a href="http://hk.uwenku.com/question/p-gkcyzjzp-tn.html" target="_blank" title="Thymeleaf渲染HTML中的錯誤"> Thymeleaf渲染HTML中的錯誤 </a> </li> <li> 8. <a href="http://hk.uwenku.com/question/p-arsbnfgc-bdb.html" target="_blank" title="Android Studio渲染片段問題"> Android Studio渲染片段問題 </a> </li> <li> 9. <a href="http://hk.uwenku.com/question/p-zzaarebr-bka.html" target="_blank" title="地圖片段渲染錯誤"> 地圖片段渲染錯誤 </a> </li> <li> 10. <a href="http://hk.uwenku.com/question/p-thmqreef-bhg.html" target="_blank" title="隱藏=當在Emacs中渲染內聯代碼片段時"> 隱藏=當在Emacs中渲染內聯代碼片段時 </a> </li> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4606349252"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <li> 11. <a href="http://hk.uwenku.com/question/p-yefvkoud-gk.html" target="_blank" title="如何不渲染django圖像字段並清除內容?"> 如何不渲染django圖像字段並清除內容? </a> </li> <li> 12. <a href="http://hk.uwenku.com/question/p-bqiuskxl-bkm.html" target="_blank" title="Sitecore - 在渲染字段中存儲內容有哪些缺陷"> Sitecore - 在渲染字段中存儲內容有哪些缺陷 </a> </li> <li> 13. <a href="http://hk.uwenku.com/question/p-plbpytht-vh.html" target="_blank" title="在Thymeleaf中擴展片段"> 在Thymeleaf中擴展片段 </a> </li> <li> 14. <a href="http://hk.uwenku.com/question/p-boedvtlf-mz.html" target="_blank" title="Microsoft Edge不渲染SVG外部內容"> Microsoft Edge不渲染SVG外部內容 </a> </li> <li> 15. <a href="http://hk.uwenku.com/question/p-yqzuwpmr-nh.html" target="_blank" title="iframe第二次沒有渲染內容"> iframe第二次沒有渲染內容 </a> </li> <li> 16. <a href="http://hk.uwenku.com/question/p-snvuwesj-qq.html" target="_blank" title="Rails 3渲染二進制內容"> Rails 3渲染二進制內容 </a> </li> <li> 17. <a href="http://hk.uwenku.com/question/p-hmgyofba-bkk.html" target="_blank" title="放大後爲UIScrollView渲染內容"> 放大後爲UIScrollView渲染內容 </a> </li> <li> 18. <a href="http://hk.uwenku.com/question/p-vhdcsjwu-gn.html" target="_blank" title="WordPress「REST API」 - 渲染VisualComposer內容"> WordPress「REST API」 - 渲染VisualComposer內容 </a> </li> <li> 19. <a href="http://hk.uwenku.com/question/p-upcraopz-ss.html" target="_blank" title="React JS - React Router - 分別渲染內容"> React JS - React Router - 分別渲染內容 </a> </li> <li> 20. <a href="http://hk.uwenku.com/question/p-rddvhogy-bau.html" target="_blank" title="c:forEach不渲染豐富內容:dataTable"> c:forEach不渲染豐富內容:dataTable </a> </li> <li> 21. <a href="http://hk.uwenku.com/question/p-hbcoxnui-bhu.html" target="_blank" title="谷歌的PageSpeed - 渲染阻擋內容"> 谷歌的PageSpeed - 渲染阻擋內容 </a> </li> <li> 22. <a href="http://hk.uwenku.com/question/p-ohxprggt-bhs.html" target="_blank" title="將內容綁定到動態渲染"> 將內容綁定到動態渲染 </a> </li> <li> 23. <a href="http://hk.uwenku.com/question/p-efugddvn-hu.html" target="_blank" title="根據javascript變量渲染jsp內容"> 根據javascript變量渲染jsp內容 </a> </li> <li> 24. <a href="http://hk.uwenku.com/question/p-uxdqqsda-bdc.html" target="_blank" title="Laravel CSRF令牌AJAX渲染的內容"> Laravel CSRF令牌AJAX渲染的內容 </a> </li> <li> 25. <a href="http://hk.uwenku.com/question/p-bxaywxhz-yp.html" target="_blank" title="gsp模板中的渲染內容"> gsp模板中的渲染內容 </a> </li> <li> 26. <a href="http://hk.uwenku.com/question/p-xmidgqpk-beu.html" target="_blank" title="Umbraco在OnPublish中獲取渲染內容"> Umbraco在OnPublish中獲取渲染內容 </a> </li> <li> 27. <a href="http://hk.uwenku.com/question/p-qnnfrvmc-eb.html" target="_blank" title="在標籤內容不渲染"> 在標籤內容不渲染 </a> </li> <li> 28. <a href="http://hk.uwenku.com/question/p-feruwnks-ou.html" target="_blank" title="css內容字符渲染奇怪"> css內容字符渲染奇怪 </a> </li> <li> 29. <a href="http://hk.uwenku.com/question/p-koqvgzpb-yx.html" target="_blank" title="渲染內Webix"> 渲染內Webix </a> </li> <li> 30. <a href="http://hk.uwenku.com/question/p-difguvbb-bbx.html" target="_blank" title="如何讓NLog解析文件內容渲染器的內容?"> 如何讓NLog解析文件內容渲染器的內容? </a> </li> </ul> </div> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1575177025"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img.uwenku.com/uwenku/script/side.js?t=1644592048261"></script> <script type="text/javascript" src="http://img.uwenku.com/uwenku/plugin/highlight/highlight.pack.js"></script> <link href="http://img.uwenku.com/uwenku/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="5415218910" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 最新問題 </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://hk.uwenku.com/question/p-dfmtksul-vx.html" target="_blank" title="jQuery的動態CSS屬性(在滾動)"> jQuery的動態CSS屬性(在滾動) </a> </li> <li class="side_article_list_item"> 2. <a href="http://hk.uwenku.com/question/p-vuvasezd-wd.html" target="_blank" title="Eclipse手動/脫機JBoss Tools Luna安裝:缺少需求abc需要'bundle xyz',但找不到"> Eclipse手動/脫機JBoss Tools Luna安裝:缺少需求abc需要'bundle xyz',但找不到 </a> </li> <li class="side_article_list_item"> 3. <a href="http://hk.uwenku.com/question/p-cgymfszy-uo.html" target="_blank" title="Laravel登記錯誤,數據庫連接,但收到奇怪的錯誤"> Laravel登記錯誤,數據庫連接,但收到奇怪的錯誤 </a> </li> <li class="side_article_list_item"> 4. <a href="http://hk.uwenku.com/question/p-qybltylb-vh.html" target="_blank" title="highmaps在遷移到.NET Core後停止更新"> highmaps在遷移到.NET Core後停止更新 </a> </li> <li class="side_article_list_item"> 5. <a href="http://hk.uwenku.com/question/p-bkksxbpc-vq.html" target="_blank" title="攔截winsock的recvfrom函數提供了無效地址錯誤"> 攔截winsock的recvfrom函數提供了無效地址錯誤 </a> </li> <li class="side_article_list_item"> 6. <a href="http://hk.uwenku.com/question/p-ayftxvnb-va.html" target="_blank" title="Python對象混入注射"> Python對象混入注射 </a> </li> <li class="side_article_list_item"> 7. <a href="http://hk.uwenku.com/question/p-xwmcdgyo-sg.html" target="_blank" title="批處理文件無法正常工作,除非我正在觀看"> 批處理文件無法正常工作,除非我正在觀看 </a> </li> <li class="side_article_list_item"> 8. <a href="http://hk.uwenku.com/question/p-xggrozic-tb.html" target="_blank" title="司 - SQL"> 司 - SQL </a> </li> <li class="side_article_list_item"> 9. <a href="http://hk.uwenku.com/question/p-zurkldvr-tn.html" target="_blank" title="在C++ Builder中的服務應用程序6"> 在C++ Builder中的服務應用程序6 </a> </li> <li class="side_article_list_item"> 10. <a href="http://hk.uwenku.com/question/p-xvogfpaq-py.html" target="_blank" title="Spring REST:適用於嵌套XML請求正文的構造函數嗎?"> Spring REST:適用於嵌套XML請求正文的構造函數嗎? </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> 相關問題</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://hk.uwenku.com/question/p-amasgphb-br.html" target="_blank" title="SWF:渲染片段不渲染"> SWF:渲染片段不渲染 </a> </li> <li class="side_article_list_item"> 2. <a href="http://hk.uwenku.com/question/p-hlmrydbq-ke.html" target="_blank" title="formtastic渲染表單片段"> formtastic渲染表單片段 </a> </li> <li class="side_article_list_item"> 3. <a href="http://hk.uwenku.com/question/p-mslcmoha-tk.html" target="_blank" title="CKEditor內容渲染定製"> CKEditor內容渲染定製 </a> </li> <li class="side_article_list_item"> 4. <a href="http://hk.uwenku.com/question/p-suxnktml-bgh.html" target="_blank" title="GraphZoomScrollPane不渲染內容"> GraphZoomScrollPane不渲染內容 </a> </li> <li class="side_article_list_item"> 5. <a href="http://hk.uwenku.com/question/p-odgpdjxj-bgz.html" target="_blank" title="thymeleaf片段包括"> thymeleaf片段包括 </a> </li> <li class="side_article_list_item"> 6. <a href="http://hk.uwenku.com/question/p-pgsizvyj-bh.html" target="_blank" title="使用ListView渲染段內的行?"> 使用ListView渲染段內的行? </a> </li> <li class="side_article_list_item"> 7. <a href="http://hk.uwenku.com/question/p-gkcyzjzp-tn.html" target="_blank" title="Thymeleaf渲染HTML中的錯誤"> Thymeleaf渲染HTML中的錯誤 </a> </li> <li class="side_article_list_item"> 8. <a href="http://hk.uwenku.com/question/p-arsbnfgc-bdb.html" target="_blank" title="Android Studio渲染片段問題"> Android Studio渲染片段問題 </a> </li> <li class="side_article_list_item"> 9. <a href="http://hk.uwenku.com/question/p-zzaarebr-bka.html" target="_blank" title="地圖片段渲染錯誤"> 地圖片段渲染錯誤 </a> </li> <li class="side_article_list_item"> 10. <a href="http://hk.uwenku.com/question/p-thmqreef-bhg.html" target="_blank" title="隱藏=當在Emacs中渲染內聯代碼片段時"> 隱藏=當在Emacs中渲染內聯代碼片段時 </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://hk.uwenku.com/contact">聯系我們</a></li> <li>© 2020 HK.UWENKU.COM</li> <li><a target="_blank" href="https://beian.miit.gov.cn/">沪ICP备13005482号-4</a></li> <li><script type="text/javascript" src="https://v1.cnzz.com/z_stat.php?id=1280101193&web_id=1280101193"></script></li> <li><a href="http://www.uwenku.com/" target="_blank" title="优文库">简体中文</a></li> <li><a href="http://hk.uwenku.com/" target="_blank" title="優文庫">繁體中文</a></li> <li><a href="http://ru.uwenku.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.uwenku.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.uwenku.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.uwenku.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.uwenku.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.uwenku.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.uwenku.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.uwenku.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.uwenku.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.uwenku.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.uwenku.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f78a970f17b19a79fc477a3378096f29"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>