Trong một .jsp Tôi sẽ sử dụng:cách sử dụng tin nhắn với freemarker trong mvc mùa xuân?
<fmt:message key="welcome.title"/>
để hiển thị một thông điệp từ tập tin messages.properties tôi.
Tôi sẽ làm điều này với freemarker như thế nào?
Trong một .jsp Tôi sẽ sử dụng:cách sử dụng tin nhắn với freemarker trong mvc mùa xuân?
<fmt:message key="welcome.title"/>
để hiển thị một thông điệp từ tập tin messages.properties tôi.
Tôi sẽ làm điều này với freemarker như thế nào?
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
@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>
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 ' –
Thay đổi thành /spring.ftl
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;
}
để mỗi mẫu tự do phải nhập? – Blankman
@Blankman Tôi không chắc chắn nhưng tôi nghĩ vậy –
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. –