Запросите параметры в Freemarker на Spring 2.5
Я пытаюсь получить параметры запроса на странице freemarker. Но я не могу понять, как настроить неявные переменные, такие как RequestParameters или так.
Вот нить http://forum.springsource.org/showthread.php?t=32846 но я не знаю, где он установил этот объект RequestParameters.
Единственное, что я нашел в docs (больше в исходном коде), что это FreemarkerServlet, который может поместить эту переменную. Но в моем заявлении этого нет. Все конфигурации выполняются через Пружина, то есть видоискатель.
Кто-нибудь может мне помочь?
3 ответов:
Для строки запроса
?myparam=abc, Вы можете получитьmyparamтак:${RequestParameters.myparam}Проверено на Spring 3 + Freemarker 2.3.
Не требуется никакой дополнительной настройки для обработчика представления.
Убедитесь, что
exposeRequestAttributesвключен в вашемFreeMarkerViewResolver, например<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" /> <property name="requestContextAttribute" value="request" /> <property name="exposeSpringMacroHelpers" value="true" /> <property name="exposeRequestAttributes" value="true" /> <property name="exposeSessionAttributes" value="true" />
Spring boot 1.5 на основе anotation в класс будет что-то вроде:
package com.openkm.config; import java.io.IOException; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver; import freemarker.cache.TemplateLoader; import freemarker.template.TemplateException; @Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("/static/").setCachePeriod(604800); // One week } @Bean(name = "freeMarkerViewResolver") public FreeMarkerViewResolver getFreeMarkerViewResolver() { FreeMarkerViewResolver viewResolver = new FreeMarkerViewResolver(); viewResolver.setExposeSpringMacroHelpers(true); viewResolver.setExposeRequestAttributes(true); viewResolver.setExposeSessionAttributes(true); viewResolver.setPrefix("/WEB-INF/ftl/"); viewResolver.setSuffix(".ftl"); viewResolver.setOrder(0); viewResolver.setContentType("text/html; charset=UTF-8"); viewResolver.setCache(false); viewResolver.setRequestContextAttribute("request"); return viewResolver; } }
Comments