1.默认配置
Springboot对于路径的默认位置为:
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
我们可以将资源文件放置上面的目录中。我们也可以将资源文件放置到webapp中,比如让我们放置一个图片到webapp的static目录下,可以看到,
2.配置jsp支持
Springboot默认支持Thymeleaf模版引擎,我们可以关闭它转而默认支持jsp。
在application.properties中配置如下,
#jsp 支持
spring.mvc.view.suffix=.jsp
spring.mvc.view.prefix=/WEB-INF/views/
#关闭默认模板引擎
spring.thymeleaf.cache=false
spring.thymeleaf.enabled=false
加入对servlet和jsp的pom依赖,如下:
4.0.0
war
org.springframework.boot
spring-boot-starter-parent
2.1.3.RELEASE
testboot01
com.zuikc
testboot01
1.0-SNAPSHOT
javax.servlet
javax.servlet-api
provided
javax.servlet
jstl
org.springframework.boot
spring-boot-starter-tomcat
org.apache.tomcat.embed
tomcat-embed-jasper
provided
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-maven-plugin
让我们创建一个新的controller,如StudentController,
package com.zuikc;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
@Controller
public class StudentController {
@RequestMapping(value = {"test01"})
public String view(Map map) {
map.put("name", "http://zuikc.com");
map.put("date", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
return "views/test01";
}
}
继而,让我们去前台创建jsp界面,
搞定,执行以下吧,看看结果如何:http://localhost:9090/test01
3.自定义消息转换器
可以直接在HelloApplicaiton中直接加入,
@Bean
public StringHttpMessageConverter stringHttpMessageConverter(){
StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
return converter;
}
4.自定义拦截器
定义一个的WebMvcConfigurerAdapter子类,重点是要将其配置configuration,如下,
package com.zuikc;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Configuration
public class MyConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
HandlerInterceptor handlerInterceptor = new HandlerInterceptor() {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("自定义拦截器............");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
};
registry.addInterceptor(handlerInterceptor).addPathPatterns("/**");
}
}
然后运行之,看看自定义拦截器执行没有哦。
5.自定义配置
在WebMvcConfigurerAdapter的子类中,我们发现还可以override其它的一些方法,比如override configureMessageConverters,这是自定义消息管理器的第二种实现,
@Override
public void configureMessageConverters(List> converters) {
StringHttpMessageConverter converter =
new StringHttpMessageConverter(Charset.forName("UTF-8"));
converters.add(converter);
}
通过override这些方法,就可以实现更多的自定义配置。这里就不再一一举例的。
感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。