Spring 3 exemple MVC et XML

Exemple de Spring 3 MVC et XML

Au printemps 3, l'une des fonctionnalités de «http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-annotation-driven[mvc:annotation- piloté] ", prend en charge la conversion d'objets vers / depuis un fichier XML, si JAXB se trouve dans le chemin d'accès aux classes du projet.

Dans ce didacticiel, nous vous montrons comment convertir un objet de retour au format XML et le renvoyer à l'utilisateur via le framework Spring @MVC.

Technologies utilisées:

  1. Spring 3.0.5.RELEASE

  2. JDK 1.6

  3. Eclipse 3.6

  4. Maven 3

JAXB in JDK6
JAXB est inclus dans JDK6, vous n'avez donc pas besoin d'inclure la bibliothèque JAXB manuellement, tant que l'objet est annoté avec l'annotation JAXB, Spring le convertira automatiquement au format XML.

1. Dépendances du projet

Aucune dépendance supplémentaire, vous devez inclure Spring MVC dans vos Mavenpom.xmluniquement.

    
        3.0.5.RELEASE
    

    

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

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

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

    

2. Modèle + JAXB

Un modèle POJO simple et annoté avecJAXB annotation, convertit plus tard cet objet en sortie XML.

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. Manette

Ajoutez «@ResponseBody» dans la valeur de retour de la méthode, pas beaucoup de détails dans lesSpring documentation.

Comme je le sais, quand le printemps voit

  1. Objet annoté avec JAXB

  2. La bibliothèque JAXB existait dans classpath

  3. "Mvc: annotation-driven" est activé

  4. Méthode de retour annotée avec @ResponseBody

Il gérera la conversion automatiquement.

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: piloté par annotation

Dans l'un de vos fichiers XML de configuration Spring, activez «mvc:annotation-driven».



    

    

Note
Vous pouvez également déclarer la dépendance «spring-oxm.jar» et inclure lesMarshallingView suivants, pour gérer la conversion. Avec cette méthode, vous n'avez pas besoin d'annoter@ResponseBody dans votre méthode.


    

    
        
          
            
                
                    com.example.common.model.Coffee
                
            
          
        
    

Télécharger le code source

Téléchargez-le -SpringMVC-XML-Example.zip (7 Ko)