1、freemarker导入SSM项目后样式丢失原因
<!-- 配置 Struts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
以上是Struts2 的核心过滤器,拦截了js等静态资源
2、解决方案
1、在struts2.xml文件中加入
<!--开放静态资源-->
<constant name="struts.action.excludePattern" value="/public/.*?" />
2、在web.xml文件中加入
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
<!-- 配置模板的路径 -->
<init-param>
<!-- 配置模板存放的位置(我这里放在了主目录下面) -->
<param-name>TemplatePath</param-name>
<param-value>/</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
在将Freemarker引入Struts2+Spring+Mybatis(SSM)项目后,遇到了样式丢失的问题。原因是Struts2的核心过滤器拦截了静态资源如js。为了解决这个问题,可以在struts2.xml配置文件中添加特定的配置,并在web.xml中开放静态资源的访问路径。通过这两步操作,可以确保静态资源正常加载,恢复页面样式。
1716

被折叠的 条评论
为什么被折叠?



