如何在Java(j2html)中编写易读的页面专属内嵌JavaScript
踩过的坑及解决方法
- 路径问题:一开始用相对路径导致报错
找不到javascript/artwork.js,改成以/开头的绝对路径(对应资源根目录)后,开发环境正常运行; - 版本bug:打包后仍找不到文件,排查发现是j2html 1.2.0的版本bug,升级到1.2.1后问题彻底解决。
为什么坚决不考虑模板方案
作为一个全栈独开发者,我完全认同你拒绝模板的理由,模板带来的所谓“优势”对我们来说反而都是负担:
- 当前所有页面都是纯j2html实现的,改用模板意味着要重构全部代码,成本太高;
- 模板需要学习专属语法,还会增加构建部署的复杂度,完全没必要;
- 已经用了独立样式表,模板对样式优化没任何帮助;
- j2html用纯Java生成页面,既能保证代码格式规范,又能更灵活地处理动态数据,而且渲染速度远超模板(j2html官网数据:i5-4670上10万次渲染耗时不到1秒,比Apache Velocity快千倍)。
总结
这个方案完美平衡了可读性和便利性:页面专属JS保存在独立文件里,编辑体验友好;Java代码通过读取资源文件的方式把JS内嵌到HTML中,不用额外部署JS文件(已打包进Jar),同时避免了维护大量零散JS文件的麻烦。
内容的提问来源于stack exchange,提问作者Paul Taylor
相关产品推荐
相关产品推荐

