关于配置视图解析器prefix路径前是否要加“/“的问题

问题描述:

今天做项目进行测试的时候发现了一个平常没咋注意的现象,当我web项目配置url的地址为多级路径时,如果视图解析器中的prefix配置时没有加"/",那么你之后跳转的页面路径将加上多级路径除去最后一级的路径,而这必然会显示404错误,如下上图:

@Controller
@RequestMapping("/dept")
public class DepartController {

    @RequestMapping("/list")
    public String list(){
        System.out.println("DepartController.list");
        return "list";
    }
}
<!--配置视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="views/dept/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

结果如下:
在这里插入图片描述
而如果在视图解析器前加上"/“就不会出现404错误。
当然如果你url配置的是单级路径,无论加不加”/"都没有影响。

结论:

之后博主又做了html中a标签的一个实验,也出现了上述现象。其实结论很简单,加"/“表示绝对路径,而不加”/"表示相对路径。绝对路径是从站点的根目录下开始寻找资源,而相对路径是从当前路径开始寻找资源。当我们配置的url为多级路径时,相对路径跟绝对路径不同,而单级路径毫无疑问没有区别。
打个比方:当我们配置的url为

/dept/app

时,绝对路径还是从

http://localhost:8080

出发,而相对路径则是从

http://localhost:8080/dept

出发,这就是加不加"/"的区别了。

猜你喜欢

转载自blog.csdn.net/Brief_/article/details/107762331