Spring 3 MVC und XML-Beispiel

Spring 3 MVC und XML Beispiel

In Spring 3 wurde eines der Features von „http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-annotation-driven[mvc:annotation- driven] “unterstützt das Konvertieren von Objekten in / aus XML-Dateien, wenn sich JAXB im Projektklassenpfad befindet.

In diesem Tutorial zeigen wir Ihnen, wie Sie ein Rückgabeobjekt in das XML-Format konvertieren und über das Spring @MVC-Framework an den Benutzer zurückgeben.

Verwendete Technologien:

  1. Spring 3.0.5.RELEASE

  2. JDK 1.6

  3. Eclipse 3.6

  4. Maven 3

JAXB in JDK6
JAXB ist in JDK6 enthalten. Sie müssen also die JAXB-Bibliothek nicht manuell einschließen, solange das Objekt mit JAXB-Annotation versehen ist. Spring konvertiert es automatisch in das XML-Format.

1. Projektabhängigkeiten

Keine zusätzlichen Abhängigkeiten, Sie müssen Spring MVC nur in Ihre Mavenpom.xmlaufnehmen.

    
        3.0.5.RELEASE
    

    

        
        
            org.springframework
            spring-core
            ${spring.version}
        

        
            org.springframework
            spring-web
            ${spring.version}
        

        
            org.springframework
            spring-webmvc
            ${spring.version}
        

    

2. Modell + JAXB

Ein einfaches POJO-Modell, das mitJAXB annotation versehen ist, konvertiert dieses Objekt später in eine XML-Ausgabe.

package com.example.common.model;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "coffee")
public class Coffee {

    String name;
    int quanlity;

    public String getName() {
        return name;
    }

    @XmlElement
    public void setName(String name) {
        this.name = name;
    }

    public int getQuanlity() {
        return quanlity;
    }

    @XmlElement
    public void setQuanlity(int quanlity) {
        this.quanlity = quanlity;
    }

    public Coffee(String name, int quanlity) {
        this.name = name;
        this.quanlity = quanlity;
    }

    public Coffee() {
    }

}

3. Regler

Fügen Sie "@ResponseBody" in den Rückgabewert der Methode ein, nicht viel Detail in denSpring documentation.

Wie ich weiß, wenn Frühling sehen

  1. Mit JAXB annotiertes Objekt

  2. Die JAXB-Bibliothek war im Klassenpfad vorhanden

  3. "Mvc: annotation-driven" ist aktiviert

  4. Rückgabemethode mit @ResponseBody-Annotation

Die Konvertierung wird automatisch durchgeführt.

package com.example.common.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.example.common.model.Coffee;

@Controller
@RequestMapping("/coffee")
public class XMLController {

    @RequestMapping(value="{name}", method = RequestMethod.GET)
    public @ResponseBody Coffee getCoffeeInXML(@PathVariable String name) {

        Coffee coffee = new Coffee(name, 100);

        return coffee;

    }

}

4. mvc: annotationsgesteuert

Aktivieren Sie in einer Ihrer Spring-Konfigurations-XML-Dateien "mvc:annotation-driven".



    

    

Note
Alternativ können Sie die Abhängigkeit "spring-oxm.jar" deklarieren und die folgendenMarshallingView einschließen, um die Konvertierung durchzuführen. Bei dieser Methode müssen Sie in Ihrer Methode keine@ResponseBody mit Anmerkungen versehen.


    

    
        
          
            
                
                    com.example.common.model.Coffee
                
            
          
        
    

Quellcode herunterladen

Laden Sie es herunter -SpringMVC-XML-Example.zip (7 KB)