概要
记录一下搭建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
好处:更利于管理和维护