SpringMVC的基础配置及视图定位


概要

记录一下搭建SpringMVC框架的步骤

视图定位也就是改变jsp在项目中的路径

一、新建javaweb项目springmvc1,在lib中导入jar包

此项目上传了GitHub,方便去下载jar包

https://github.com/yeyangtao/springmvc

二、web-inf下的web.xml文件

其中的serve-name的spingmvc下一步会用到

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.4">
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

三、在同路径下创建springmvc-servlet.xml

文件名中的springmvc就对应上一步的servlet-name中的springmvc

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="simpleUrlHandlerMapping"
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/hello">indexController</prop>
            </props>
        </property>
    </bean>
    <bean id="indexController" class="controller.IndexController"></bean>
</beans>

/hello 指定待会浏览器上输入的路径

四、在src中新建IndexController类实现Controller接口

package controller;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
 
public class IndexController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mav = new ModelAndView("index.jsp");
        mav.addObject("message", "Hello Spring MVC");
        return mav;
    }
}

ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作用。业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndView返回该Spring MVC框架。框架通过调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定的页面上(index.jsp)。

五、index.jsp用来显示

采用el表达式 ${message}

六、部署到tommcat上测试

浏览器输入http://localhost:8080/springmvc1/hello

结果:

 七、视图定位

问题:jsp文件是在WebContent文件夹下,现在如果要修改jsp文件存放的位置该怎么修改?

1、修改springmvc-servlet.xml,增加

    </bean>
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="prefix" value="/WEB-INF/page/" />
   <property name="suffix" value=".jsp" />
</bean>

其作用是把视图约定在 /WEB-INF/page/*.jsp 这个位置 

2、把控制类中ModelAndView mav = new ModelAndView("index.jsp");

改成ModelAndView mav = new ModelAndView("index");

因为配置文件中已经指明了jsp后缀

3、在web-inf中新建page文件夹,并将index.jsp移到此处

4、重启tomcat

好处:更利于管理和维护

 


作者:野杨桃,发布于:2019/05/16
原文:https://www.cnblogs.com/yeyangtao/p/10875830.html