Параметры запроса во Freemarker на Spring 2.5 - PullRequest
4 голосов
/ 15 февраля 2010

Я пытаюсь получить параметры запроса на странице бесплатного маркера. Но я не могу понять, как настроить неявные переменные, такие как RequestParameters или около того.

Вот поток http://forum.springsource.org/showthread.php?t=32846, но я не знаю, где он настроил этот объект RequestParameters.

Единственное, что я нашел в документах (больше в исходном коде), это то, что это FreemarkerServlet может разместить эту переменную. Но у меня нет этого в моем заявлении. Все настройки выполняются через Spring, то есть View Resolver.

Кто-нибудь может мне помочь?

Ответы [ 3 ]

8 голосов
/ 16 февраля 2010

Убедитесь, что в вашем FreeMarkerViewResolver включен exposeRequestAttributes, например,

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

5 голосов
/ 09 февраля 2011

Для строки запроса ?myparam=abc вы можете получить myparam, например:

${RequestParameters.myparam}

Проверено на Spring 3 + Freemarker 2.3.

Не требуется дополнительная настройка для обработчика представления.

0 голосов
/ 09 июля 2017

Spring boot 1.5 на основе аннотации в классе будет выглядеть примерно так:

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;
    }
}
...