国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

3.1、定義一個控制器:使用 @Controller 和 @RequestMapping

Render / 1988人閱讀

摘要:用定義一個控制器注解指定一個特定的類擔任控制器的角色。典型地,類級別的注解映射一個指定的請求路徑或者是路徑匹配模式到一個控制器,使用額外的方法層注解縮小主要映射的范圍。第一處是類級別的,它指出這個控制器中的所有方法都與路徑相關。

1)用 @Controller 定義一個控制器

????注解 @Controller 指定一個特定的類擔任控制器的角色。Spring 不要求你集成任何控制器基類或者引用 Servlet API。不過,你仍然可以根據需要使用指定的 Servlet 特性。
????注解 @Controller 對于被注解的類來說就像一個模板(stereotype),指示它的角色。收發器(dispatcher)為被映射的方法掃描被注解的類,并檢測注解 @RequestMapping(見下一部分)。
????你可以在分發器的上下文中使用標準的 Spring Bean 定義,來顯式地定義被注解的控制器。不過,@Controller 模板也允許自動檢測,就像 Spring 通常支持的在類路徑中自動檢測組件類并自動為它們注冊 Bean 定義。
????為了能夠自動檢測到這樣被注解的控制器,你要添加組件掃描到你的配置中。像下面的 XML 片段那樣使用 Spring 的 context"命名空間:




    
    ......
2)使用 @RequestMapping 映射請求

????使用注解 @RequestMapping 映射一個 URL(比如:/contex)到一個類或者一個特定的處理方法上。典型地,類級別的注解映射一個指定的請求路徑(或者是路徑匹配模式)到一個控制器,使用額外的方法層注解縮小主要映射的范圍。
下面是一個例子:

package com.techmap.examples.controllers;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.DateTimeFormat.ISO;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;


@Controller
@RequestMapping("/contex")
public class ContexController
{
    
    /**
     * 不指定 path 參數
     */
    @RequestMapping(method = RequestMethod.GET)
    public String get1()
    {
        return "/examples/targets/test1";
    }
    
    /**
     * 帶有 path 參數
     */
    @RequestMapping(path = "/new", method = RequestMethod.GET)
    public String get2()
    {
        return "/examples/targets/test2";
    }
    
    /**
     * 帶有 URI 模板
     */
    @RequestMapping(path = "/{day}", method = RequestMethod.GET)
    public String getForDay(@PathVariable @DateTimeFormat(iso = ISO.DATE) Date day, Model model)
    {
        System.out.println("--> " + new SimpleDateFormat("yyyy-MM-dd").format(day));
        
        return "/examples/targets/test3";
    }
}
3)測試例子

????為使得例子可用,在上一篇的項目中添加下面三個 jsp 文件:test1.jsp、test3.jsp、test3.jsp。內容如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
    String basepath = request.getScheme() + "://" + request.getServerName() + ":" + request
            .getServerPort() + request.getContextPath() + "/";
%>



">


    

Test 1

代碼中只有 test1.jsp,其他兩個內容相同,只有

中的內容不同,test2.jsp 中是

Test 2

,test3.jsp中是

Test 3

。它們所在的目錄是:

4)改造一下 helloWorld.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
    String basepath = request.getScheme() + "://" + request.getServerName() + ":" + request
            .getServerPort() + request.getContextPath() + "/";
%>






    

Hello World!

Test Controller

Test1
Test2
Test3
5)開始測試

????用上一篇中給出的路徑進入 helloWorld.jsp,看到如下頁面:

????分別點擊超鏈接 Test1、Test2、Test3,將會跳到上面定義的三個 test*.jsp 頁面。值得注意的是,點擊 Test3 時,控制臺會打印出如下的信息:

...
DEBUG 2016-09-05 08:15:23,152 Last-Modified value for [/spring5mvc/contex/2016-09-05] is: -1  (DispatcherServlet.java:951) 
--> 2016-09-05
DEBUG 2016-09-05 08:15:23,219 Invoking afterPropertiesSet() on bean with name "/examples/targets/test3"
...

這說明Test3中的日期字符串將作為參數傳遞到參數 day 上。

6)說明

????在上面的例子中,注解 @RequestMapping 被用在了多處。第一處是類級別的,它指出這個控制器中的所有方法都與路徑 /contex 相關。方法get1()上有一個 @RequestMapping 來進一步細化:它只接受 GET 請求,這意味著 HTTP GET 請求 /contex 將調用這個方法。方法 get2() 有一個相似的細化;方法 get2() 把 HTTP 方法定義和路徑合并到了一起,這樣 GET 請求 /contex/new 就可以被這個方法處理了。
????方法 getForDay() 展示了另一種使用 @RequestMapping 的方式:URI 模板(后面介紹)。
????像第一、二篇給出的 Hello World 例子那樣,類級別的 @RequestMapping 不是必須的。沒有它,所有的路徑都是簡單的絕對路徑,而不是相對的。如果不指定 GET、PUT、POST 等,@RequestMapping 默認映射所有的HTTP方法。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65104.html

相關文章

  • SpringMVC【開發Controller】詳解

    摘要:是使用攔截器來自動幫我們完成中文亂碼的問題的。這是我的首頁當然了,基于注解和基于來開發,都是通過映射器適配器和視圖解析器的。能夠控制請求路徑和請求方式一個控制器寫多個業務方法到目前為止,我們都是一個控制器寫一個業務方法,這肯定是不合理的。 前言 本文主要是講解在Controller中的開發,主要的知識點有如下: 編碼過濾器 使用注解開發 注解@RequestMapping詳解 業務方...

    Pines_Cheng 評論0 收藏0
  • SpringMVC之源碼分析--HandlerMapping(四)

    摘要:默認支持該策略。以上是對的宏觀分析,下面我們進行內部細節分析。整體流程一通過實現接口,完成攔截器相關組件的初始化調用類的方法。總結本文主要分析了的初始化過程,希望對大家有幫助。隨著學習的深入,后面有時間在分析下期中涉及的關鍵,比如等等。 概述 本節我們繼續分析HandlerMapping另一個實現類ReqeustMappingHandlerMapping,該類是我們日常開發中使用最多的...

    imccl 評論0 收藏0
  • Spring之旅第八站:Spring MVC Spittr舞臺的搭建、基本的制器、請求的輸入、表

    摘要:請求旅程的第一站是的。的任務是將請求發送控制器控制器是一個用于處理請求的組件。處理映射器根據請求攜帶的信息來進行決策。這樣的結果就是,只能找到顯示聲明在配置類中的控制器。 構建Spring Web應用 說明 如果你有幸能看到。 1、本文參考了《Spring 實戰》重點內容,參考了GitHub上的代碼 2、本文只為記錄作為以后參考,要想真正領悟Spring的強大,請看原書。 3、在一次...

    maybe_009 評論0 收藏0
  • SpringMVC之Controller常用注解功能全解析

    摘要:分發處理器將會掃描使用了該注解的類的方法,并檢測該方法是否使用了注解。這種絕對路徑和相對路徑所組合成的最終路徑都是相對于根路徑而言的。屬性屬性主要是用于限制能夠訪問的方法類型的。屬性的用法和功能與屬性相似。使用標記的參數。 一、簡介 在SpringMVC 中,控制器Controller 負責處理由DispatcherServlet 分發的請求,它把用戶請求的數據經過業務處理層處理之后封...

    wanghui 評論0 收藏0
  • springmvc常用注解標簽詳解

    摘要:分發處理器將會掃描使用了該注解的類的方法,并檢測該方法是否使用了注解。作用該注解用于將的方法返回的對象,通過適當的轉換為指定格式后,寫入到對象的數據區。用于注解層,在類上面注解。使用標記的參數。 1、@Controller 在SpringMVC 中,控制器Controller 負責處理由DispatcherServlet 分發的請求,它把用戶請求的數據經過業務處理層處理之后封裝成一個M...

    notebin 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<