(二)工程结构需要颜值

在这里我将第一个Spring MVC实例的结构完善得漂亮一点,这样工程看起来会更舒服,也更加方便维护。

View Resolver

我们看到在两个Controller类里,返回一个ModeAndView后者View时,参数里的View显得冗长:
InputUserController.java:

return new ModelAndView("/WEB-INF/jsp/UserForm.jsp");

SaveUserController.java:

return new ModelAndView("/WEB-INF/jsp/UserDetails.jsp", "user", user);

View部分唯一不同的就是视图名,如果能够将其他相同的部分省略或简要替代,那代码的颜值会不会上升呢?

颜值上升的方法

Spring MVC 中的视图解析器负责解析视图。可以通过在配置文件中定义一个ViewResolver来配置视图解析器。
springmvc-servlet.xml:


  
        
        
  
  ......
  ......



这样一来,view路径将缩短,仅需要提供视图名,而不必再设置视图路径为/WEB-INF/jsp/试图名.jsp,视图解析器将会自动增加前缀和后缀。
相应的Controller类代码也要修改,如下所示:
InputUserController.java:

//  return new ModelAndView("/WEB-INF/jsp/UserForm.jsp");
    return new ModelAndView("UserForm");

SaveUserController.java:

//  return new ModelAndView("/WEB-INF/jsp/UserDetails.jsp", "user", user);
    return new ModelAndView("UserDetails", "user", user);

config文件夹

代码是漂亮了一点,工程结构也得同步提升。
Spring MVC的配置文件springmvc-servlet.xml在默认文件(lib)下,如今需要更名为springmvc-config.xml,且移步到/WEB-INF/config/路径下:
在WEB-INF下新建config文件夹,如图所示:

(二)工程结构需要颜值_第1张图片
springmvc-config.xml路径

如果这里就结束了,那么项目运行得报错了,找不到DispatcherServlet。
springmvc-config.xml是由web.xml中标签加载的,当springmvc-config.xml处于默认文件时,不需要额外(不用声明)定义,否则得显示地定义,如下所示:
web.xml


        springmvc
        
            org.springframework.web.servlet.DispatcherServlet
        
        
        
      
        contextConfigLocation
        /WEB-INF/config/springmvc-config.xml
      
        
        1

以上所有如果不做,对工程的正确运行也没有丝毫影响。

你可能感兴趣的:((二)工程结构需要颜值)