日期:2014-05-19  浏览次数:20919 次

SpringMVC为什么在修改一个静态页面必须重新启动服务器才可以?
本帖最后由 notenlife 于 2012-11-30 23:25:08 编辑
最近自己学习搭建开发框架的时候遇到了一个困惑,因为在修改静态页面的内容的时候,必须重新启动tomcat才行,起初认为是项目的问题,结果查了很久发现,如果在web.xml中取消
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

这个拦截器,直接访问静态页面的时候,修改页面内容后不需要重新启动服务器,刷新修改过的页面就可以了。但是,如果添加了springMVC访问一个页面的话,对静态页面的内容进行更改后,刷新浏览器根本没有变化。但是tomcat部署的目录的静态文件已经改过了,只是刷新没用,换个浏览器访问这个页面还是修改前的页面。这是怎么回事呢?能否给个思路?

webapp\common\meta.html
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

<#assign ctx=(rc.getContextPath())!''>
<!--EXTJS样式文件-->
<link rel="stylesheet" type="text/css" href="${ctx}/resources/ext/resources/css/ext-all.css"/>
<!--EXTJS文件-->
<script type="text/javascript" src="${ctx}/resources/ext/bootstrap.js"></script>
<!--EXTJS本地化文件,会将EXTJS中的提示信息等自动转换为简体中文-->
<script type="text/javascript" src="${ctx}/resources/ext/locale/ext-lang-zh_CN.js"></script>




webapp\index.jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<#include "common/meta.html"/>
<script type="text/javascript" src="${ctx}/resources/app.js"></script>
<title>首页</title>
<script type="text/javascript">

</script>
<meta http-equiv="pragma" content="no-cache" />
</head>
<body>
<button id='myButton'>点击</button>
测试neng
</body>
</html>

------解决方案--------------------
试下我的:
<!-- 配置 FreeMarkerConfigurer-->
<bean id="freemarkerManagerWeb" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer" p:templateLoaderPath="/WEB-INF/ftl/" p:defaultEncoding="UTF-8">
<property name="freemarkerSettings">
<props>
<prop key="classic_compatible">true</prop>
<prop key="number_format">#.##</prop>
<!-- <prop key="template_update_delay">3600</prop>隔3600秒检查模板是否更新 -->
<!-- <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop> -->
                <!-- <prop key="template_exception_handler">ignore</prop> -->
</props>
</property>
</bean>