3.SpringMVC修改配置文件路徑和給界面傳遞數據


1.修改配置文件路徑  達到  配置多文件的目的

web.xml文件中基礎配置有springMVC配置的servlet路徑

<servlet-name>SpringMVC</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

同時還有,配置加載順序的:

<load-on-startup>1</load-on-startup>

我們如果需要加載其他地方的多個springMVC配置文件,就需要在代碼中加入如下代碼:

   <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:config/*-servlet.xml</param-value>
   </init-param>

需要注意的是:加入的代碼必須放在<servlet-class>...</servlet-class>與<load-on-startup>...</load-on-startup>之間。

其中<param-name>contextConfigLocation</param-name>為參數的配置,所需要的參數可以在org.springframework.web.servlet.DispatcherServlet中得到。

classpath

不帶*的話只會默認用第一個配置文件,如果不帶*,多人協作的時候會導致同一個被修改出現錯誤。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<servlet>
<!--基礎配置有springMVC配置的servlet路徑-->
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--如果需要加載其他地方的多個springMVC配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:config/SpringMVC-servlet.xml</param-value>
<!--classpath*代表在src下尋找config文件夾再在其中尋找以-servlet.xml文件結尾的文件-->
</init-param>
<!--配置加載順序的-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern><!-- 攔截所有請求 -->
</servlet-mapping>
</web-app>

 

當然為了防止將來的配置文件太多不容易區分,則所有的配置文件盡量不要放在WEB-INF里面,所以新建了一個config文件包來放

/SpringMVC1/src/config/SpringMVC-servlet.xml

1、如果將spring配置文件放置在web工程的WEB-INF下, web.xml配置spring文件方式:

 
  1. <context-param>  
  2.     <param-name>contextConfigLocation</param-name>  
  3.     <param-value>/WEB-INF/spring-xxx.xml</param-value>        
  4. </context-param>  

2、如果將spring配置文件放置在web工程的SRC源目錄下,web.xml配置spring文件方式:

 
  1. <context-param>  
  2.     <param-name>contextConfigLocation</param-name>  
  3.     <param-value>classpath*:spring-xxx.xml</param-value>      
  4. </context-param>  

多個spring-xxx.xml需要用逗號分隔。

 

 

 

2.給界面傳遞數據

在springMVC的配置文件中,已經配置了<bean>如下:

 <bean name="/test1/helloworld"  class="controller.HelloController"></bean>

 

/test1/helloworld 為訪問項目的路徑

//傳遞數據可以傳遞 字符串   map 

①傳遞 字符串

 

 

 

 

 

EL表達式去顯示出我們取的值。

②傳遞map

在配置的bean的java文件中的handleRequest方法。這一步只是為了構造數據:

System.out.println("-------進入HelloSpringMVCController類--------");
  String hello = "測試:spring數據從后台傳入頁面";

  Map<String,Object> map = new HashMap<String,Object>();
  map.put("map1", "第一個map");
  map.put("map2", "第二個map");
  map.put("map3", "第三個map");
  map.put("map4", "第四個map");
  //return new ModelAndView("/hello","StringResult",hello);//返回String類型的數據到頁面
  return new ModelAndView("/hello","mapResult",map);//返回map類型的數據到頁面

在寫jsp頁面之前需要導入兩個jar文件,分別為jstl.jar與standard.jar,用 jstl 表達式 和 el 表達式

在hello.jsp頁面中首先需要導入jar包

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

然后加入如下代碼

 你好SpringMVC!!!<br/>
    <div>
     <h3>后台數據顯示:</h3>
     <!-- 獲得String類型的數據 -->
     <!--  ${StringResult }-->
     <!-- 獲得map類型的數據 -->
     <c:forEach items="${mapResult}" var="mapVar">
      ${mapVar.key }----------->${mapVar.value }<br/>
     
     </c:forEach>
    </div>

這樣就可以將后台的數據顯示在頁面上了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM