Inhaltsverzeichnis
1. Anforderungsparameter abrufen
1) Grundlegende Typparameter: Der Parametername der Geschäftsmethode in
2) POJO-Typparameter: Der Attributname des POJO-Parameters der Geschäftsmethode in
3) Array-Typ-Parameter
4) Parameter des Sammlungstyps
7.文件上传
Heim Java javaLernprogramm Wie erhalte ich Anforderungsdaten in SpringMVC?

Wie erhalte ich Anforderungsdaten in SpringMVC?

May 09, 2023 pm 10:04 PM
java springmvc

    1. Anforderungsparameter abrufen

    Das Format der Client-Anforderungsparameter ist: Name=Wert&Name=Wert... Die Serverseite muss die angeforderten Parameter abrufen und manchmal muss SpringMVC Folgendes empfangen Parametertypen:

    1) Grundlegende Typparameter: Der Parametername der Geschäftsmethode in

    Controller muss mit dem Namen des Anforderungsparameters übereinstimmen, und der Parameterwert wird automatisch zugeordnet und abgeglichen.

    //http://localhost:8080/project/quick9?username=zhangsan&age=12
    @RequestMapping("/quick9")
    @ResponseBody
    public void quickMethod9(String username,int age) throws IOException {
        System.out.println(username);
        System.out.println(age);
    }
    Nach dem Login kopieren

    2) POJO-Typparameter: Der Attributname des POJO-Parameters der Geschäftsmethode in

    Controller stimmt mit dem Namen des Anforderungsparameters überein, und der Parameterwert wird automatisch zugeordnet und abgeglichen.

    //http://localhost:8080/itheima_springmvc1/quick9?username=zhangsan&age=12
    public class User {
        private String username;
        private int age;
        getter/setter…
    }
    @RequestMapping("/quick10")
    @ResponseBody
    public void quickMethod10(User user) throws IOException {
        System.out.println(user);
    }
    Nach dem Login kopieren

    3) Array-Typ-Parameter

    Der Name des Geschäftsmethoden-Arrays im Controller stimmt mit dem Namen des Anforderungsparameters überein, und die Parameterwerte werden automatisch zugeordnet und abgeglichen.

    //http://localhost:8080/project/quick11?strs=111&strs=222&strs=333
    @RequestMapping("/quick11")
    @ResponseBody
    public void quickMethod11(String[] strs) throws IOException {
        System.out.println(Arrays.asList(strs));
    }
    Nach dem Login kopieren

    4) Parameter des Sammlungstyps

    Beim Abrufen der Sammlungsparameter müssen Sie die Sammlungsparameter in ein POJO einbinden.

    <form action="${pageContext.request.contextPath}/quick12" method="post">
     <input type="text" name="userList[0].username"><br>
     <input type="text" name="userList[0].age"><br>
     <input type="text" name="userList[1].username"><br>
     <input type="text" name="userList[1].age"><br>
     <input type="submit" value="提交"><br>
    </form>
    Nach dem Login kopieren
    @RequestMapping("/quick12")
    @ResponseBody
    public void quickMethod12(Vo vo) throws IOException {
        System.out.println(vo.getUserList());
    }
    Nach dem Login kopieren

    Beim Senden mit Ajax können Sie den contentType als json angeben und dann @RequestBody an der Position des Methodenparameters verwenden, um die Sammlungsdaten direkt zu empfangen, ohne POJO zum Verpacken zu verwenden.

    <script>
    //模拟数据
    var userList = new Array();
    userList.push({username: "zhangsan",age: "20"});
    userList.push({username: "lisi",age: "20"});
    $.ajax({
    type: "POST",
    url: "/itheima_springmvc1/quick13",
    data: JSON.stringify(userList),
    contentType : &#39;application/json;charset=utf-8&#39;
    });
    </script>
    Nach dem Login kopieren
    @RequestMapping("/quick13")
    @ResponseBody
    public void quickMethod13(@RequestBody List<User> userList) throws 
    IOException {
        System.out.println(userList);
    }
    Nach dem Login kopieren

    Hinweis: Durch die Paketerfassung des Google-Entwicklertools wurde festgestellt, dass die JQuery-Datei nicht geladen wurde. Der Grund dafür ist, dass das URL-Muster des SpringMVC-Front-End-Controllers DispatcherServlet mit / konfiguriert ist, was bedeutet, dass alle Ressourcen werden gefiltert. Die folgenden zwei Methoden werden verwendet, um die Freigabe statischer Ressourcen anzugeben: • Geben Sie die freigegebenen Ressourcen im Spring-MVC an.

    Beim Posten werden die Daten verstümmelt web.xml, um die Kodierung zu filtern.

    <mvc:resources mapping="/js/**" location="/js/"/>
    Nach dem Login kopieren

    Wenn der angeforderte Parametername nicht mit dem Parameternamen der Geschäftsmethode des Controllers übereinstimmt, müssen Sie die Bindung über die Annotation @RequestParam anzeigen.

    <!--资源过滤器-->
        <filter>
            <filter-name>CharacterEncodingFilter</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>CharacterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    Nach dem Login kopieren

    3. Die Parameterbindungsannotation @RequestParam

    annotation @RequestParam verfügt außerdem über die folgenden Parameter, die verwendet werden können:

    Wert:

    Name des Anforderungsparameterserforderlich: Ob die angegebene Anforderung Parameter ist erforderlich oder nicht Einschließen, der Standardwert ist wahr. Wenn beim Senden kein solcher Parameter vorhanden ist, wird ein Fehler gemeldetStandardwert:Wenn keine Anforderungsparameter angegeben sind, wird der angegebene Standardwert für die Zuweisung verwendet
    <form action="${pageContext.request.contextPath}/quick14" method="post">
     <input type="text" name="name"><br>
     <input type="submit" value="提交"><br>
    </form>
    Nach dem Login kopieren
    Restful ist ein Software-Architekturstil und Designstil, kein Standard. Er stellt lediglich eine Reihe von Designprinzipien und Einschränkungen bereit. Wird hauptsächlich für interaktive Client-Server-Software verwendet. Software, die auf diesem Stil basiert, kann einfacher, mehrschichtig und einfacher zu implementierende Caching-Mechanismen sein.
    4. Restful-Stilparameter erhalten
    Restful Style Request verwendet „URL+Request-Methode“, um den Zweck einer Anfrage anzugeben. Die vier Verben im HTTP-Protokoll, die die Operationsmethode angeben, lauten wie folgt:

    GET:

    Ressourcen abrufen LÖSCHEN: Ressource löschenPUT:Ressource aktualisierenPOST:Neue Ressource Den Benutzer mit der ID = 1 abrufenDe Benutzer mit ID zulassen = 1 In SpringMVC können Platzhalter für die Parameterbindung verwendet werden. Die Adresse /user/1 kann als /user/{id} geschrieben werden und der Platzhalter {id} entspricht dem Wert 1. In der Geschäftsmethode können wir die Annotation @PathVariable verwenden, um einen Platzhalterabgleich zu erhalten.
    @RequestMapping("/quick14")
    @ResponseBody
    public void quickMethod14(@RequestParam(value="name",required = 
    false,defaultValue = "defaultname") String username) throws IOException {
    System.out.println(username);
    }
    Nach dem Login kopieren
    /Benutzer/1 LÖSCHEN:
    5. Benutzerdefinierter Typkonverter

    Obwohl SpringMVC standardmäßig einige häufig verwendete Typkonverter bereitstellt, z. B. die Konvertierung der vom Client übermittelten Zeichenfolge in den Int-Typ zur Parametereinstellung.
    //http://localhost:8080/itheima_springmvc1/quick19/zhangsan
    @RequestMapping("/quick19/{name}")
    @ResponseBody
    public void quickMethod19(@PathVariable(value = "name",required = true) String name){
    System.out.println(name);
    }
    Nach dem Login kopieren
    ② Deklarieren Sie den Konverter in der Konfigurationsdatei spring-mvc.xml
    public class DateConverter implements Converter<String, Date> {
        @Override
        public Date convert(String source) {
            SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
            Date date = null;
            try {
                date = format.parse(source);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return date;
        }
    }
    Nach dem Login kopieren
    <!--配置自定义转换器-->
        <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
            <property name="converters">
                <list>
                    <bean class="converter.DateConverter"/>
                </list>
            </property>
        </bean>
    Nach dem Login kopieren
    @RequestHeaderWert
    Aber nicht alle Datentypen bieten Konverter. Wenn nicht, müssen Sie den Konverter anpassen. Für Datumstypdaten ist beispielsweise ein benutzerdefinierter Konverter erforderlich.
    Entwicklungsschritte des benutzerdefinierten Typkonverters: ① Definieren Sie die Konverterklasse, um die Konverterschnittstelle zu implementieren
    ③ In Referenzkonverter6. Rufen Sie den Anforderungsheader ab
    Verwenden Sie @RequestHeader, um die Anforderungsheaderinformationen abzurufen, die dem in der Webphase gelernten request.getHeader(name) entsprechen lauten wie folgt:

    Der Name des Anforderungsheaders

      erforderlich
    • Ob dieser Anforderungsheader übertragen werden muss

    • @RequestMapping("/quick17")
      @ResponseBody
      public void quickMethod17(@RequestHeader(value = "User-Agent",required = false) String 
      headerValue){
          System.out.println(headerValue);
      }
      Nach dem Login kopieren

      @CookieValue

      使用@CookieValue可以获得指定Cookie的值 @CookieValue注解的属性如下:

      value指定cookie的名称
      required是否必须携带此cookie
      @RequestMapping("/quick18")
      @ResponseBody
      public void quickMethod18(@CookieValue(value = "JSESSIONID",required = false) String jsessionid){
          System.out.println(jsessionid);
      }
      Nach dem Login kopieren

      7.文件上传

      文件上传客户端三要素:

      • 表单项type=“file”

      • 表单的提交方式是post

      • 表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”

      <form action="${pageContext.request.contextPath}/quick20" method="post" 
      enctype="multipart/form-data">
      名称:<input type="text" name="name"><br>
      文件:<input type="file" name="file"><br>
       <input type="submit" value="提交"><br>
      </form>
      Nach dem Login kopieren

      文件上传步骤

      ① 在pom.xml导入fileupload和io坐标

      <!--文件下载-->
          <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
          </dependency>
          <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
          </dependency>
      Nach dem Login kopieren

      ② 配置文件上传解析器

      <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
              <property name="defaultEncoding" value="UTF-8"/>
              <property name="maxUploadSize" value="500000"/>
          </bean>
      Nach dem Login kopieren

      ③ 编写文件上传代码

      @RequestMapping("/quick8")
          @ResponseBody
          public void save8(String name, MultipartFile uploadfile) {
              System.out.println("save8 running...");
              System.out.println(name);
              String filename = uploadfile.getOriginalFilename();
              try {
                  uploadfile.transferTo(new File("D:\\upload\\"+filename));
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
      Nach dem Login kopieren

      Das obige ist der detaillierte Inhalt vonWie erhalte ich Anforderungsdaten in SpringMVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    AI Hentai Generator

    AI Hentai Generator

    Erstellen Sie kostenlos Ai Hentai.

    Heißer Artikel

    R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Beste grafische Einstellungen
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25: Wie man alles in Myrise freischaltet
    1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

    Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

    Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

    Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

    Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

    Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

    Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

    Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

    Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

    In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

    Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

    Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

    Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

    Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

    Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

    Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

    See all articles