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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲欧美日韩中文字幕网址 | 亚洲美女爱爱 | 三星w699 | 亚洲精品tv久久久久久久久久 | 白丝女仆被啪到深夜漫画 | 男人和女人全黄一级毛片 | 韩国三级 720p | 欧美人与禽杂交大片 | 天海翼最新作品 | 久久成人免费大片 | 免费网址视频在线看 | 亚洲国产成人综合 | 果冻传媒在线完整免费观 | 女人把扒开给男人爽 | 国产第一福利视频导航在线 | 色吧欧美 | 成人男女啪啪免费观看网站 | 97精品国产自在现线免费观看 | 亚洲第一网站免费视频 | 日韩欧美推理片免费在线播放 | 欧美靠逼| 九九久久国产 | 日本精品一卡二卡≡卡四卡 | 湖南美女被黑人4p到惨叫 | 999久久精品国产 | 九九精品视频在线观看 | 免费一级特黄特色大片∵黄 | 久久免费观看视频 | 国产日韩欧美一区 | 欧美福利在线观看 | 成人二区| 日本高清在线观看天码888 | 亚洲午夜性春猛交xxxx | 娇小8一12xxxx第一次 | 天天av天天翘天天综合网 | 亚洲香蕉伊在人在线观婷婷 | 青草视频在线观看免费资源 | 97影院伦理| 美女口述又粗又大感觉 | 97超pen个人视频公开视频视 | 国产精品资源在线观看网站 |