Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

怎样用 Boot 与 Thymeleaf 构建服务端页面?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

控制器准备专用页面模型,返回逻辑模板名,Thymeleaf渲染HTML,静态资源承担交互和样式;Boot可提供匹配的模板集成。页面复杂度还需要清楚组件、布局与表单错误处理,不能把业务查询和权限判断全部藏进模板表达式里。

讲清原理

普通文本使用转义输出;未转义HTML只用于经过明确清洗和信任边界处理的内容。表单仍需服务端验证、CSRF及资源授权,浏览器控件约束不是最终保障。

公共布局和片段可减少重复,静态资源采用合适版本缓存,动态与个性化页面不应随意公共缓存。模板缓存设置也应区分开发与生产,并验证发布后资源引用一致。

例子与易错点

显示用户昵称时测试中文、空值与含尖括号文本;编辑失败回到原表单并保留安全输入和错误提示。不要把隐藏按钮当作授权,直接请求接口仍必须被服务端正确检查。

以下为 Java 21 类成员示例,放入同一外部类中使用,依赖 Boot4.1.2 / Framework7.0.10。使用项目已有Thymeleaf3.1.5及其spring6集成制品,实际配合Framework7运行;只测模板引擎,不冒充Boot Web整合验收。

static String renderName(String name) {
    var resolver=new org.thymeleaf.templateresolver.StringTemplateResolver();
    resolver.setTemplateMode(org.thymeleaf.templatemode.TemplateMode.HTML);
    var engine=new org.thymeleaf.spring6.SpringTemplateEngine();
    engine.setTemplateResolver(resolver);
    var context=new org.thymeleaf.context.Context(java.util.Locale.CHINA);
    context.setVariable("name",name);
    return engine.process("<p th:text=\"${name}\">name</p>",context);
}

相关题:第 28 题、第 34 题、第 46 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。