2010-07-01 31 views

Trả lời

25

nhập xuân Macro

<#import "/spring.ftl" as spring/> 

Sau đó

<@spring.message "yourMessageKeyGoesHere"/> 

Nhưng bạn cần đăng ký ResourceBundleMessageSource

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> 
    <property name="basename" value="messages"/> 
</bean> 

Hãy nhớ MessageSource phải được gọimessageSource

+1

để mỗi mẫu tự do phải nhập? – Blankman

+0

@Blankman Tôi không chắc chắn nhưng tôi nghĩ vậy –

+0

Như tôi đã nhớ, Bạn có thể nhập mẫu theo mặc định. @Blankman: bạn có thể tham khảo tài liệu Freemarker. –

12

@Blankman

Không, bạn không cần phải nhập khẩu này bằng tay trong mỗi mẫu. Bạn có thể đặt thuộc tính auto_import trong cài đặt freemarker như được hiển thị bên dưới.

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> 
    ... 

    <property name="freemarkerSettings"> 
     <props> 
      <prop key="auto_import">spring.ftl as spring</prop> 
     </props> 
    </property> 
</bean> 
+1

tôi đã thử tương tự cho spring.ftl thông qua tự động nhập nó cung cấp cho 'java.io.FileNotFoundException: Template spring.ftl không tìm thấy ' –

+1

Thay đổi thành /spring.ftl /spring.ftl làm mùa xuân

1

Một số khác là câu trả lời hay. Cung cấp cấu hình java làm ví dụ cho những người sử dụng nó.

@Bean(name = "freemarkerConfig") 
public FreeMarkerConfigurer freemarkerConfig() { 
    FreeMarkerConfigurer configurer = new FreeMarkerConfigurer(); 
    configurer.setTemplateLoaderPaths("/WEB-INF/views/", 'classpath:/templates'); 
    Map<String, Object> map = new HashMap<>(); 
    map.put("xml_escape", new XmlEscape()); 
    configurer.setFreemarkerVariables(map) 
    def settings = new Properties() 
    settings['auto_import'] = 'spring.ftl as spring,layout/application.ftl as l,/macros/meh.ftl as meh' 
    configurer.setFreemarkerSettings(settings) 
    log.info "returning freemarker config" 
    return configurer; 
} 
Các vấn đề liên quan