配置资源路径及属性为: spring.velocity.resource-loader-path=classpath:velocity/ spring.mvc.view.suffix=.vm new ModelAndView("/project/detail",map) 资源存放在classpath:velocity/project/detail.vm modelAndView跳转时无法命中静态资源
时间: 2024-04-03 22:34:28 浏览: 135
你可以尝试修改 resource-loader-path 的值,将其设为 classpath:/velocity/,这样可以直接在 classpath 下查找资源。同时,你还需要确认资源文件的存放位置和命名是否正确,应该为 velocity/project/detail.vm。如果还是无法命中静态资源,可以尝试使用相对路径或绝对路径来指定资源文件的位置。另外,如果你使用的是 Spring Boot,可以考虑使用 Thymeleaf 模板引擎替代 Velocity,它的资源路径配置相对简单,且支持更多的功能和特性。
相关问题
3、(4分)Spring Boot集成Velocity模板引擎时,以下哪些配置是正确的 A、开启缓存的配置为:spring.velocity.cache B、设置字符编码的配置为:spring.velocity.charse C、设置模板文件的后缀名的配置为:spring.velocity.suffix D、设置模板文件存放路径的配置为:spring.velocity.resource-loader-path
D、设置模板文件存放路径的配置为:`spring.velocity.resource-loader-path`。在Spring Boot中集成Velocity模板引擎时,需要进行相关配置以便正确地加载和渲染模板文件。常见的配置方式有两种:
1. 在`application.properties`或`application.yml`配置文件中定义Velocity的相关属性,如模板文件的位置、缓存的开关等。示例:
```
spring.velocity.resource-loader-path=classpath:templates/
spring.velocity.cache=false
spring.velocity.charset=UTF-8
spring.velocity.suffix=.vm
```
2. 使用Java代码配置Velocity模板引擎的相关属性。示例:
```java
@Configuration
public class VelocityConfig {
@Bean
public VelocityConfigurer velocityConfigurer() {
VelocityConfigurer configurer = new VelocityConfigurer();
configurer.setResourceLoaderPath("classpath:templates/");
configurer.setVelocityProperties(velocityProperties());
return configurer;
}
@Bean
public Properties velocityProperties() {
Properties properties = new Properties();
properties.setProperty("input.encoding", "UTF-8");
properties.setProperty("output.encoding", "UTF-8");
properties.setProperty("directive.set.null.allowed", "true");
properties.setProperty("resource.manager.defaultcache.size", "100");
return properties;
}
@Bean
public ViewResolver velocityViewResolver() {
VelocityViewResolver resolver = new VelocityViewResolver();
resolver.setSuffix(".vm");
resolver.setCache(false);
resolver.setContentType("text/html;charset=UTF-8");
resolver.setExposeSpringMacroHelpers(true);
resolver.setExposeRequestAttributes(true);
resolver.setExposeSessionAttributes(true);
return resolver;
}
}
```
其中,`spring.velocity.resource-loader-path`表示模板文件的路径,`spring.velocity.cache`表示是否开启缓存,`spring.velocity.charset`表示字符编码,`spring.velocity.suffix`表示模板文件的后缀名。因此,选项D是正确的。选项A和B的属性名称不正确;选项C的属性名称正确,但是它是用于设置模板文件的后缀名,而不是用于开启缓存。
springboot-2.1.8 如何整合velocity
可以通过添加velocity-starter依赖来整合Velocity,具体步骤如下:
1. 在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-velocity</artifactId>
</dependency>
```
2. 在application.properties文件中添加以下配置:
```
spring.velocity.cache=false # 禁用Velocity缓存
spring.velocity.charset=UTF-8 # 设置Velocity编码为UTF-8
spring.velocity.allow-request-override=true # 允许请求覆盖
spring.velocity.prefer-file-system-access=false # 禁用文件系统访问
spring.velocity.suffix=.vm # 设置Velocity视图后缀为.vm
spring.velocity.prefix=classpath:/templates/ # 设置Velocity视图文件位置
```
3. 创建Velocity模板文件,存放在/templates目录下。
4. 在Controller类中使用@Rendrering注解返回Velocity模板名称。
例如:
```
@Controller
public class HomeController {
@RequestMapping("/")
public String home() {
return "index";
}
}
```
这将返回/templates目录下的index.vm模板文件。
阅读全文