Запросите параметры в Freemarker на Spring 2.5



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



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



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



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

545   3  

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

    Ничего не найдено.