如果我们不使用spring boot,我们可以使用velocity {property}这样的
tools.view.servlet.layout.directory =layout/
tools.view.servlet.layout.default.template=default.vm
或者在我们的springmvc项目中使用这个bean
<bean id="velocityViewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
<property name="cache" value="false" />
<property name="layoutUrl" value="/layout/default.vm" />
<property name="prefix" value="/templates/" />
<property name="suffix" value=".vm" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="contentType" value="text/html;charset=UTF-8" />
<property name="viewClass" value="org.springframework.web.servlet.view.velocity.VelocityLayoutView" />
<!-- <property name="toolboxConfigLocation" value="classpath:web/config/toolbox.xml" />
<property name="exposeSessionAttributes" value="true" /> -->
</bean>
但我想知道如何通过application.properties设置速度布局。 而且我对#34; spring.velocity.properties。* =&#34;也有一些困惑。在application.properties中。我们如何以及何时可以使用它。我无法找到一个关于此的演示。
答案 0 :(得分:1)
最后我解决了我的问题。原谅我没有清楚地描述问题。我们在项目中使用VelocityLayoutViewResolver作为viewClass,而springViewResolver是spring boot中的默认viewClass。另一方面,spring boot支持velocity-tools 2.0虽然春天4.0没有。而且我没有在春季启动时如何使用VelocityLayoutViewResolver配置velocity-tools 2.0。最后我通过这种方式解决了我的问题:
<bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
<property name="cache" value="false" />
<property name="layoutUrl" value="/layout/default.vm" />
<property name="prefix" value="/templates/" />
<property name="suffix" value=".vm" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="contentType" value="text/html;charset=UTF-8" />
<property name="viewClass" value="org.springframework.web.servlet.view.velocity.VelocityLayoutView" />
<property name="attributesMap">
<map>
<entry key="csrfTool"><bean class="com.XXX.velocity.CSRFTool"/></entry>
<entry key="shiro"><bean class="com.XXX.velocity.Permission"/></entry>
</map>
</property>
</bean>
并以
开头@Configuration
@SpringBootApplication
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(new String[] {
"classpath*:web/config/viewResolver.xml",
}, args);
}
}
非常感谢StéphaneNicoll的回答。
答案 1 :(得分:0)
您可以随意使用大量资源。您可以尝试a sample。您还可以查看spring.velocity properties in the documentation。
您会看到您的XML示例高于许多相似之处,即:
spring.velocity.cache=false
spring.velocity.prefix=/templates/
spring.velocity.suffix=.vm
spring.velocity.expose-spring-macro-helpers=true
spring.velocity.content-type=text/html;charset=UTF-8
spring.velocity.expose-session-attributes=true
我的意思是它的字面与XML中的名称相同
如果您想设置viewClass
,那么您可以创建自己名为VelocityViewResolver
的{{1}},我们会使用它。
velocityViewResolver
执行它所声明的内容。可以设置其他属性以进一步自定义spring.velocity.properties
。
查看VelocityAutoConfiguration
了解详情。