一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring中MVC模塊代碼詳解

Spring中MVC模塊代碼詳解

2021-02-23 11:35冰河winner Java教程

這篇文章主要介紹了Spring中MVC模塊代碼詳解,涉及Controller的簡單介紹,具有一定借鑒價值,需要的朋友可以參考下。

SpringMVC的Controller用于處理用戶的請求。Controller相當于Struts1里的Action,他們的實現機制、運行原理都類似

Controller是個接口,一般直接繼承AbstrcatController,并實現handleRequestInternal方法。handleRequestInternal方法相當于Struts1的execute方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class CatController extends AbstractController{
    private ICatService catService;
    //setter、getter略
    protected ModelAndView handleRequestInternal(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
        String action =request.getParameter("action");
        if("list".equals(action)){
            return this.list(request,response);
        }
    }
    protected ModelAndView list(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
        List<Cat> catList =catService.listCat();
        request.setAttribute("catList", catList);
        return new ModelAndView("cat/listCat");
    }
}

SpringMVC沒有內置數據的封裝,開發者可以自己封裝數據轉換代碼

SpringMVC獨特的地方在于view層的處理上。handleRequestInternal返回ModelAndView對象,可以看做是對JSP對象的封裝。ModelAndIView直接接受JSP頁面的路徑。例如參數"cat/listCat",只是JSP路徑的一部分,實際完整的路徑是"WEB-INF/jsp/cat/catList.jsp",路徑前后的部分是配置在配置文件中的

除了制定JSP路徑,ModelAndView還可以直接傳遞Model對象到View層,而不用事先放到request中,例如newModelAndView("cat/listCat","cat",cat),如果傳遞多個參數,可以使用Map,如

?
1
2
3
4
Map map = newHashMap();
map.put("cat",cat);
map.put("catList",catList);
return new ModelAndView("cat/listCat",map);

一般使用一個獨立的xml文件如spring-action.xml專門配置web相關的組件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?xml version= "1.0" encoding="UTF-8"?>
<!DCTYPEbeans PUBLIC "-//SPRING//DTD BEAN//EN"
 "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
   <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="prefix">
          <value>/WEB-INF/jsp/</value><!-- JSP前綴-->
       </property>
       <property name="suffix">
          <value>.jsp</value>         <!-- JSP后綴-->
       </property>
  
   <!-- 配置URL Mapping-->
   <bean id="urlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandleMapping">
       <property name="mappings">
          <props><!—Controller的URL會被配置成"cat.mvc"-->
              <prop key="cat.mvc">catController</prop>
          <props>
       </property>
   </bean>
   <bean id="catController" class="com.clf.spring.CatController">
       <property name="catService" ref="catService"></property>
   </bean>
</beans>
  
web.xml配置
<context-param><!-- Spring配置文件的位置-->
   <param-name>contextConfigLocation</param-name>
   <param-value>
       /WEB-INF/classes/applicationContext.xml,
       /WEB-INF/classes/spring-action.xml  
   </param-value>
</context-param>
  
<listener><!-- 使用Listener加載Spring配置文件-->
   <listener-class>
       org.springframework.web.context.ContextLoaderListener
   </listener-class>
</listener>
  
<servlet><!-- spring分發器-->
   <servlet-name>spring</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <init-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/classes/spring-action.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup><!-- 啟動時加載-->
</servlet>
  
<servlet-mapping>
   <servlet-name> spring</servlet-name>
   <url>*.mvc</url>
</servlet-mapping>

如果一個Controller要處理多個業務邏輯,可以使用MultiActionController,相當于Struts 1中的DispatchAction,能根據某個參數將不同的請求分發到不同的方法上

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class CatController extends AbstractController{
    private ICatService catService;
    //setter、getter略
    protected ModelAndView add(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
        ……
               return new ModelAndView("cat/addCat");
    }
    protected ModelAndView list(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
        List<Cat> catList =catService.listCat();
        request.setAttribute("catList", catList);
        return new ModelAndView("cat/listCat");
    }
}

配置到spring-action.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<bean id="paraMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
   <property name="paramName">
       <value>action</value><!-- 配置分發參數-->
   </property>
   <property name="defaultMethodName">
       <value>list</value><!-- 配置默認的執行方法-->
   </property>
</bean>
  
<bean id="urlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandleMapping">
       <property name="mappings">
          <props>
              <prop key="cat.mvc">catController</prop><!-- 訪問"cat.mvc"則交給catController處理-->
              <prop key="catMulti.mvc">catMultiController</prop><!-- 訪問"catMulti.mvc"則交給catMultiController處理-->
          <props>
       </property>
   </bean>
  
   <bean id="catController" class="com.clf.spring.CatMultiController">
       <property name="catService" ref="catService"></property>
   </bean>
  
   <bean id="catMultiController" class="com.clf.spring.CatController">
       <property name="catService" ref="catService"></property>
   </bean>

總結

以上就是本文關于Spring中MVC模塊代碼詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。

原文鏈接:http://blog.csdn.net/u012152619/article/details/44300491

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本三级免费观看 | b站免费| 亚洲欧美成人综合久久久 | 亚洲国产精品嫩草影院久久 | b片在线观看 | 亚洲视频在线观看地址 | 黄动漫软件车车好快的车车 | 久久AV国产麻豆HD真实乱 | 我将她侵犯1~6樱花动漫在线看 | 精品国产乱码久久久人妻 | 亚洲一区 在线播放 | 好吊色永久免费视频大全 | 天美传媒在线视频 | 亚洲四虎永久在线播放 | 日韩一区二区不卡 | 国产资源中文字幕 | 日韩欧美国产在线 | 国产亚洲精品线观看77 | 亚洲天堂在线视频播放 | 免费大秀视频在线播放 | 先锋影音 av | 国产精品久久久久久五月尺 | 免费理伦片在线观看全网站 | 国产精品www夜色影视 | 亚洲黄色成人 | 久久国产香蕉 | 青青青视频蜜桃一区二区 | 午夜精品久久久久久中宇 | 日韩视频在线免费观看 | 婷婷综合久久中文字幕 | 国产卡一卡二卡三乱码手机 | 欧美cosplay极品video | aa视频免费 | 欧美一区二区三区四区五区六区 | 欧美精选欧美极品 | 耽美双性| 久久精品视频在线看 | 亚洲高清中文字幕 | 调教扩张宫颈女人惨叫 | 小早川怜子亚洲综合中文字幕 | 色综合中文字幕在线亚洲 |