我们已经升级到Struts 6.0.0
。Struts 2 jquery plugin version 4.0.3
项目。在加载页面时,我们会遇到以下错误:
Could not load the FreeMarker template named 'div':
Attempted: /template/jquery/div.ftl
Attempted: /template/xhtml/div.ftl
Attempted: /template/simple/div.ftl
The TemplateLoader provided by the FreeMarker Configuration was a: org.apache.struts2.views.freemarker.FreemarkerThemeTemplateLoader
Could not open template
堆栈跟踪原因是:
Caused by: freemarker.core.ParseException: Syntax error in template "template/jquery/div.ftl" in line 22, column 43:
Using ?html (legacy escaping) is not allowed when auto-escaping is on with a markup output format (HTML), to avoid double-escaping mistakes.
at freemarker.core.FMParser.BuiltIn(FMParser.java:1225)
at freemarker.core.FMParser.PrimaryExpression(FMParser.java:595)
at freemarker.core.FMParser.UnaryExpression(FMParser.java:707)
at freemarker.core.FMParser.MultiplicativeExpression(FMParser.java:822)
文件template/jquery/div.ftl
中的第22行如下:
<#if parameters.id??> id="${parameters.id?html}"<#rt/></#if>
我不熟悉Freemaker
,我希望我能找到一个旗帜或什么东西来传递这个。
我在https://cwiki.apache.org/confluence/display/WW/Struts+2.5+to+6.0.0+migration和https://struts.apache.org/tag-developers/tag-syntax#escaping-body-of-a-tag上看到了迁移指南,但是找不到这个问题。
我试图在struts.ui.escapeHtmlBody
中设置struts.xml
,但这没有帮助。
发布于 2022-08-27 11:03:38
根据https://github.com/struts-community-plugins/struts2-jquery,对于Struts6.0,必须使用struts jQuery插件6.0。
在pom.xml
中更改下面的内容,修复它
<dependency>
<groupId>com.jgeppert.struts2.jquery</groupId>
<artifactId>struts2-jquery-plugin</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>com.jgeppert.struts2.jquery</groupId>
<artifactId>struts2-jquery-grid-plugin</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>com.jgeppert.struts2.jquery</groupId>
<artifactId>struts2-jquery-datatables-plugin</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>com.jgeppert.struts2.jquery</groupId>
<artifactId>struts2-jquery-richtext-plugin</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>com.jgeppert.struts2.jquery</groupId>
<artifactId>struts2-jquery-tree-plugin</artifactId>
<version>5.0.0</version>
</dependency>
https://stackoverflow.com/questions/73357558
复制相似问题