springMVC中默认组件通过DispatcherServlet.properties配置文件进行配置。
该配置文件地址:org/springframework/web/servlet/DispatcherServlet.properties
配置文件中配置了默认的视图解析器,如下:
org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver
![SpringMVC中视图解析器的简答配置 SpringMVC中视图解析器的简答配置](https://zlprime.oss-cn-shanghai.aliyuncs.com/2022/04/2022-04-08_19-15-13.png?x-oss-process=image%2Fquality,q_50%2Fresize,m_fill,w_1024,h_405)
在InternalResourceViewResolver的父类UrlBasedViewResolver中,我们可以看到两个变量:
private String prefix = ""; 视图名称前缀
private String suffix = ""; 视图名称后缀
![SpringMVC中视图解析器的简答配置 SpringMVC中视图解析器的简答配置](https://zlprime.oss-cn-shanghai.aliyuncs.com/2022/04/2022-04-08_19-19-53.png)
我们在处理器(@Controller)中,返回给视图处理器的路径,实际上是由 视图前缀+字符串+视图后缀 组成的。
@Controller
@RequestMapping(value = "user")
public class UserController {
//访问地址为 /user/save?username
@RequestMapping(value = "/save",method = RequestMethod.GET,params = {"username"})
public String save(){
System.out.println("Save running");
//返回路径实际上是 视图前缀+success+视图后缀
return "success";
}
}
所以,我们可以通过属性注入的方式修改视图处理器默认的前后缀
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
经过以上处理,返回路径就变成了: /jsp/success.jsp
评论 (0)