(二)工程结构需要颜值

在这里我将第一个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:

<beans xmlns="http://www.springframework.org/schema/beans" 
           ......
           ...... >
  <bean id="viewResolver" 
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
  </bean>
  ......
  ......

</beans>

这样一来,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文件夹,如图所示:

springmvc-config.xml路径

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

<servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        
        <!-- 为配置文件springmvc-config.xml声明相对路径 -->
      <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/config/springmvc-config.xml</param-value>
      </init-param>
        
        <load-on-startup>1</load-on-startup>
</servlet>

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容