Thymeleaf 3.0.11.RELEASE 英文教程:现代服务器端Java模板引擎

需积分: 0 0 下载量 197 浏览量 更新于2024-07-02 收藏 662KB PDF 举报
"thymeleaf-3.0.11.RELEASE-英文手册.pdf" Thymeleaf是一款现代化的服务器端Java模板引擎,适用于Web和独立环境,能处理HTML、XML、JavaScript、CSS甚至纯文本。其主要目标是提供一种优雅且易于维护的方式来创建模板。Thymeleaf通过自然模板的概念,将逻辑注入到模板文件中,而不影响模板作为设计原型的使用,从而改善了设计与开发团队之间的沟通,缩小了两者之间的差距。 Thymeleaf从一开始就遵循Web标准,特别是HTML5,这意味着你可以创建完全符合验证规则的模板,如果你的项目有这个需求。Thymeleaf开箱即用,支持处理六种类型的模板,每种模板模式都有其特定的应用场景: 1. HTML:这是最常见的模板模式,用于创建网页,Thymeleaf能够处理动态内容,并与HTML5标准兼容。 2. XML:适用于需要处理XML文档的情况,如配置文件或数据交换格式。 3. TEXT:用于处理纯文本,如电子邮件正文或简单的文本文件,可以插入变量和表达式。 4. JAVASCRIPT:允许在JavaScript代码中插入动态内容,使客户端脚本更加灵活。 5. CSS:虽然通常CSS是静态的,但Thymeleaf允许你根据条件生成样式规则,为样式表增加动态性。 6. RAW:这种模式下,Thymeleaf不会对模板进行任何处理,而是直接输出原始内容,通常用于处理不需解析的特殊格式。 Thymeleaf的另一个重要特性是其表达式语言(Expression Language, EL),它允许在模板中嵌入变量、属性访问、运算符以及方法调用等,使得模板代码更简洁、更易于理解。例如,你可以使用EL来动态地设置元素的属性,或者根据条件展示或隐藏内容。 此外,Thymeleaf还支持国际化(i18n)和本地化(l10n),允许你轻松地管理多语言内容。通过定义消息资源文件,你可以为不同的语言和地区提供相应的文本。 在实际应用中,Thymeleaf通常与Spring框架结合使用,提供强大的MVC(Model-View-Controller)支持。它能够与Spring的模型对象无缝集成,方便地将后台数据绑定到视图层,简化前端开发工作。 总结来说,Thymeleaf是一款强大而灵活的模板引擎,旨在提升Web应用的开发效率和代码可维护性,通过其自然模板机制和丰富的模板模式,使得设计师和开发者可以更好地协作,实现动态内容的高效渲染。无论是处理HTML、XML,还是JavaScript和CSS,Thymeleaf都能提供出色的解决方案。

ERROR 5436 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/back/comment_list.html]")] with root cause org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'list' cannot be found on null at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:213) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:104) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.expression.spel.ast.PropertyOrFieldReference.access$000(PropertyOrFieldReference.java:51) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.expression.spel.ast.PropertyOrFieldReference$AccessorLValue.getValue(PropertyOrFieldReference.java:406) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:90) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:109) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:328) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:263) ~[thymeleaf-spring5-3.0.11.RELEASE.jar:3.0.11.RELEASE]

2023-06-08 上传