Я хочу настроить Spring MVC для обслуживания динамических файлов, смешанных со статическими файлами, например (URL => Файл):
/iAmDynamic.html => /WEB-INF/views/iAmDynamic.html.ftl
/iAmAlsoDynamic.js => /WEB-INF/views/iAmAlsoDynamic.js.ftl
/iAmStatiHtml => /iAmStatic.html
DispatchServlet
сопоставлен с /
, конфигурация MVC на основе аннотаций включена, и у меня есть контроллер вида, подобный этому (упрощенный):
@Controller
public class ViewController
{
@RequestMapping("*.html")
public String handleHtml(final HttpServletRequest request)
{
return request.getServletPath();
}
@RequestMapping("*.js")
public String handleJavaScript(final HttpServletRequest request)
{
return request.getServletPath();
}
}
Конфигурация Spring выглядит следующим образом:
<context:component-scan base-package="myPackage" />
<mvc:default-servlet-handler />
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/views/" />
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true" />
<property name="prefix" value="" />
<property name="suffix" value=".ftl" />
</bean>
К сожалению, это не работает. Когда этот <mvc:default-servlet-handler />
активен, я могу получить доступ только к файлу iAmStatic.html
. Когда я отключаю default-servlet-handler, тогда работают только динамические вещи. Но я хочу и то и другое одновременно, и это именно то, что должен делать этот обработчик по умолчанию, или нет? Где здесь ошибка?