Query parameters in Freemarker on Spring 2.5

I am trying to get request parameters on freemarker page. But I cannot figure out how to set up implicit variables like RequestParameters or so.

Here is the stream http://forum.springsource.org/showthread.php?t=32846 , but I do not set this RequestParameters object.

The only thing I found in the docs (more in the source code) is the FreemarkerServlet, which can host this variable. But I do not have it in my application. All configurations are done using Spring, i.e., View Resolver.

Can someone help me?

+4
source share
3 answers

For the query string ?myparam=abc you can get to myparam like this:

 ${RequestParameters.myparam} 

Tested on Spring 3 + Freemarker 2.3.

No additional configuration is required for the view handler.

+4
source

Make sure exposeRequestAttributes included in the FreeMarkerViewResolver , e.g.

 <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" /> 

+8
source

Spring boot 1.5, based on class annotation, would be something like this:

 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; } } 
0
source

Source: https://habr.com/ru/post/1301360/


All Articles