176142998

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            116 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks
          Step 1:配置web.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee 
              http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
          >


              
          <display-name>springapp</display-name>
                  
              
          <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>/page/*</url-pattern>
              
          </servlet-mapping>

          </web-app>
          servlet-mapping定義所有以/page/開(kāi)頭的url請(qǐng)求都會(huì)被spring 的DispatcherServlet處理轉(zhuǎn)發(fā)。默認(rèn)情況下DispatcherServlet會(huì)讀取<servlet-name>-servlet.xml文件的配置信息初始化,該文件中urlMapping的定義決定當(dāng)前請(qǐng)求轉(zhuǎn)發(fā)給哪個(gè)controller來(lái)處理。

          Step2:
          定義/WEB-INF/springMVC-servlet.xml
           
          <?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="InternalPathMethodNameResolver"
                  class
          ="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver" />
                  
              
          <!-- 視圖解析器 -->
              
          <bean id="viewResolver"
                  class
          ="org.springframework.web.servlet.view.InternalResourceViewResolver">
                  
          <property name="viewClass">
                      
          <value>org.springframework.web.servlet.view.JstlView</value>
                  
          </property>
              
          </bean>
              
              
          <bean id="controller" class="com.controller.IndexController">
                  
          <property name="methodNameResolver">
                      
          <ref bean="InternalPathMethodNameResolver" />
                  
          </property>
              
          </bean>

              
          <bean id="urlMapping"
                  class
          ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
                  
          <property name="mappings">
                      
          <props>
                          
          <prop key="/controller/*">controller</prop>
                      
          </props>
                  
          </property>
              
          </bean>
          </beans>
          urlMapping定義/controller/開(kāi)頭的url請(qǐng)求由名字為controller的控制器來(lái)處理,因?yàn)槭嵌鄤?dòng)作處理器,所以要定義MethodNameResolver來(lái)告訴springMVC應(yīng)該調(diào)用controller的哪個(gè)方法,這里用的是InternalPathMethodNameResolver,該方法名解釋器會(huì)把整個(gè)URL中最后一個(gè)"/"和最后一個(gè)"."之間的部分作為要調(diào)用的方法名

          Step3:定義controller類并繼承MultiActionController 
          package com.controller;

          import
           java.io.IOException;
          import
           java.util.HashMap;
          import
           java.util.Map;

          import
           javax.servlet.ServletException;
          import
           javax.servlet.http.HttpServletRequest;
          import
           javax.servlet.http.HttpServletResponse;

          import
           org.springframework.web.servlet.ModelAndView;
          import
           org.springframework.web.servlet.mvc.multiaction.MultiActionController;

          public class IndexController extends MultiActionController 
          {
              
              
          public
           ModelAndView method1(HttpServletRequest request,
                      HttpServletResponse respnose) 
          throws ServletException, IOException 
          {
                  Map model 
          = new
           HashMap();
                  model.put(
          "message""你調(diào)用的是方法1"
          );
                  
          return new ModelAndView("/index.jsp""model"
          , model);
              }

              
              
          public ModelAndView method2(HttpServletRequest request,
                      HttpServletResponse respnose) 
          throws ServletException, IOException 
          {
                  Map model 
          = new
           HashMap();
                  model.put(
          "message""你調(diào)用的是方法2"
          );
                  
          return new ModelAndView("/index.jsp""model"
          , model);
              }

          }


          通過(guò)配置文件,訪問(wèn)上面這個(gè)controller中某個(gè)方法的url即為:localhost:8080/page/controller/方法名


          Step4:/index.jsp
          <%@ page language="java" pageEncoding="UTF-8"%>
          <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
          <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%> 


          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

          <html>
          <head></head>  
          <body>

              
          <c:out value="${model.message}"/>
          </body>
          </html>
          因?yàn)?font color="#0000ff">InternalPathMethodNameResolver方法名解釋器會(huì)把整個(gè)URL中最后一個(gè)"/"和最后一個(gè)"."之間的部分作為要調(diào)用的方法名,所以你可以在這個(gè)URL后面加任意文件格式的后綴,比如:
          localhost:8080/page/controller/method1.jsp

          localhost:8080/page/controller/method2.html
          很爽吧,和真實(shí)的URL地址一樣。


          另:開(kāi)發(fā)環(huán)境:MyEclipse5.0M2+tomcat5.5
            需要用到spring.jar和jstl.jar兩個(gè)包。
          posted on 2008-08-11 16:02 飛飛 閱讀(216) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 莆田市| 四平市| 巩留县| 东丽区| 开阳县| 花莲县| 舞钢市| 宁陵县| 永兴县| 淮北市| 奈曼旗| 桐梓县| 浠水县| 长治县| 石林| 内黄县| 呼图壁县| 隆昌县| 清水河县| 白朗县| 石河子市| 内黄县| 高尔夫| 响水县| 襄城县| 桐柏县| 麻城市| 修文县| 文昌市| 弥勒县| 达州市| 红原县| 临桂县| 马尔康县| 高要市| 阜宁县| 隆化县| 板桥市| 霍城县| 贵溪市| 辛集市|