出于调试目的,我想列出我的thymeleaf模板渲染时可用的所有模型属性。
像这样:
<table>
<tr th:each="model : ${*}">
<td th:text="${model}"></td>
</tr>
</table>
但显然这是无稽之谈,我得到了一个当之无愧的错误。(org.springframework.expression.spel.SpelParseException: EL1070E:(pos 0): problem analysising left operand
)
有没有办法输出这样的调试信息?我甚至会满足于一些日志记录输出。
或者,Thymeleaf是否提供了类似于Struts 2的<code>Struts的功能。devMode在页面底部添加了一个调试部分,列出了所有可用的属性?
这些是所有日志记录可用配置:
log4j.logger.org.thymeleaf=DEBUG
log4j.logger.org.thymeleaf.TemplateEngine.CONFIG=DEBUG
log4j.logger.org.thymeleaf.TemplateEngine.TIMER=DEBUG
log4j.logger.org.thymeleaf.TemplateEngine.cache.TEMPLATE_CACHE=DEBUG
log4j.logger.org.thymeleaf.TemplateEngine.cache.FRAGMENT_CACHE=DEBUG
log4j.logger.org.thymeleaf.TemplateEngine.cache.MESSAGE_CACHE=DEBUG
log4j.logger.org.thymeleaf.TemplateEngine.cache.EXPRESSION_CACHE=DEBUG
这些将记录所有thymeleaf操作。我希望这是有帮助的。
公认的答案似乎不适用于Thymeleaf 3;这里有一个更新。请注意,我使用的是Spring;这可能不适用于非Spring应用程序。
<table>
<tr th:each="var : ${#vars.getVariableNames()}">
<td th:text="${var}"></td>
<td th:text="${#vars.getVariable(var)}"></td>
</tr>
<!--
Adding these manually because they are considered special.
see https://github.com/thymeleaf/thymeleaf/blob/thymeleaf-3.0.3.RELEASE/src/main/java/org/thymeleaf/context/WebEngineContext.java#L199
-->
<tr>
<td>param</td>
<td th:text="${#vars.getVariable('param')}"></td>
</tr>
<tr>
<td>session</td>
<td th:text="${#vars.getVariable('session')}"></td>
</tr>
<tr>
<td>application</td>
<td th:text="${#vars.getVariable('application')}"></td>
</tr>
</table>
也就是说,我所做的是创建一个独立的Bean,它使事情变得更漂亮,并转储到日志而不是超文本标记语言:
@Component
public class ThymeleafDumper {
private Logger log = LoggerFactory.getLogger(ThymeleafDumper.class);
public void dumpToLog(WebEngineContext ctx) {
log.debug("Thymeleaf context: {}", formatThisUpNicely(ctx));
}
// ... etc
}
其中< code > formathisupnicely 可以使用< code > CTX . getvariablenames(),将结果放入< code>SortedMap,导出到< code>json,等等。不要忘记这三个“特殊”变量!
然后将其实例公开为Controller
或Controlller建议
中的@ModelAtoun
:
@ControllerAdvice
public class SomeControllerAdvice {
@Autowired
private ThymeleafDumper thymeleafDumper;
@ModelAttribute("dumper")
public ThymeleafDumper dumper() {
return this.thymeleafDumper;
}
}
然后在我的模板中运行:
<div th:text="${dumper.dumpToLog(#vars)}"/>
试试这个:
<table>
<tr th:each="var : ${#vars}">
<td th:text="${var.key}"></td>
<td th:text="${var.value}"></td>
</tr>
</table>
问题内容: 为了进行调试,我想列出百里香模板渲染时可用的 所有 模型属性。 就像是: 但这显然是胡说八道,而且我得到了当之无愧的错误。() 有没有一种输出这种调试信息的方法?我什至愿意为一些日志输出。 或者,Thymeleaf是否提供与Struts 2类似的功能,即它在页面底部添加了列出所有可用属性的调试部分? 问题答案: 试试这个:
问题内容: 我以这种格式定义了一个.py文件: foo.py 我从另一个文件导入它: main.py 是否可以列出所有功能名称,例如? 感谢您的帮助,我为我想要的课程做了一堂课,如果有建议请发表评论 问题答案: 做这些事情的最干净的方法是使用检查模块。它具有将谓词作为第二个参数的函数。您可以用作谓词。 现在,将是一个元组列表,其中第一个元素是函数的名称,第二个元素是函数本身。
我犯了一个让我发疯的奇怪错误。我有一个控制器,它有两个不同的Get方法,用于两个不同的url映射。URL1工作得非常好,我明白URL2的作用 [THYMELEAF][http-nio-8080-exec-3]异常处理模板“QuestionnaReform”:处理器组织执行期间出错。百里香。标准加工机attr。java导致的StandardEachAttrProcessor(问题:10)。lang.
问题内容: 我正在使用ResourceBundle,我想给用户一个选择GUI语言的选项。 我想获取特定程序包下所有资源文件的列表。 我不知道我将拥有什么资源,因为此应用程序基于插件。 是否有一个选项可以要求Java搜索程序包下的所有可用资源? (如果没有,我猜该插件应该为它提供所有可用的本地文件) 谢谢你们 问题答案: 这些文件可以驻留在Web服务器上。没有标准的方式列出Web服务器上的文件(页面
有没有一种方法可以在Laravel中检索具有所有属性的模型,即使这些属性为空?它似乎只返回属性不为null的模型。 原因是我有一个函数,如果模型中存在属性,它将从数组中更新模型属性。在设置模型之前,我使用property_exists()函数检查模型是否具有特定属性。数组键和模型属性应该匹配,所以它就是这样工作的。 如果模型已经设置了属性,它可以正常工作,因为属性存在并从数组中获取值。但是,如果属
我正在用Spring MVC和Thymeleaf在视图层开发一个完整的Spring应用程序。过去,我在视图层中使用过JSP和Spring MVC,但我想它们现在是恐龙了 所以我的问题是,使用JSP,通过在模型中添加值,我可以很容易地在视图中显示模型属性。在控制器中添加属性,并在JSP anywhere中显示相同的属性,占位符求值为springex${value}。所以,如果我想在页面中放置标题,我