概要
記錄一下搭建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
好處:更利於管理和維護
