Maison > Java > javaDidacticiel > le corps du texte

Exemple d'analyse de réponse aux données Java SpringMVC

WBOY
Libérer: 2023-05-21 12:16:06
avant
779 Les gens l'ont consulté

1) Saut de page

Renvoyer la chaîne directement : cette méthode concatènera la chaîne renvoyée avec le préfixe et le suffixe de l'analyseur de vue, puis sautera.

Exemple danalyse de réponse aux données Java SpringMVC

Renvoie une chaîne avec le préfixe :

Forward : forward:/WEB-INF/views/index.jsp

Redirect: redirect:/index.jsp

Return via l'objet ModelAndView

@RequestMapping("/quick2")
public ModelAndView quickMethod2(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("redirect:index.jsp");
    return modelAndView;
}
@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    return modelAndView;
}
Copier après la connexion

in Lors du transfert, les données sont souvent stockées dans le champ de requête et affichées dans la page jsp. Alors, comment le contrôleur stocke-t-il les données dans le champ de requête ?

① Défini via la méthode setAttribute() de l'objet requête injecté par le framework SpringMVC.

@RequestMapping("/quick")
public String quickMethod(HttpServletRequest request){
    request.setAttribute("name","zhangsan");
    return "index";
}
Copier après la connexion

② Défini via la méthode addObject() de ModelAndView.

@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    modelAndView.addObject("name","lisi");
    return modelAndView;
}
Copier après la connexion

2) Réécrire les données

Renvoyer directement la chaîne : dans l'étape de base du Web, le client accède au serveur. Si vous souhaitez réécrire directement la chaîne et la renvoyer comme corps de réponse, il vous suffit d'utiliser la réponse. .getWriter().print(" hello world"), et si vous souhaitez réécrire une chaîne directement dans le contrôleur ?

① Utilisez Response.getWriter().print("hello world") pour réécrire les données via l'objet de réponse injecté par le framework SpringMVC. À l'heure actuelle, aucun saut de vue n'est requis et la valeur de retour de la méthode métier est. vide.

@RequestMapping("/quick4")
public void quickMethod4(HttpServletResponse response) throws IOException {
    response.getWriter().print("hello world");
}
Copier après la connexion

② Renvoyez directement la chaîne qui doit être réécrite, mais à ce stade, vous devez informer le framework SpringMVC via l'annotation @ResponseBody. La chaîne renvoyée par la méthode n'est pas un saut mais est renvoyée directement dans la réponse http. corps.

@RequestMapping("/quick5")
@ResponseBody
public String quickMethod5() throws IOException {
    return "hello springMVC!!!"; 
}
Copier après la connexion

En développement, nous avons souvent besoin de convertir des objets Java complexes en chaînes au format json. Nous pouvons utiliser l'outil de conversion json jackson que nous avons appris lors de la phase Web pour convertir

1.

<!--jackson-->
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-core</artifactId>
 <version>2.9.0</version>
</dependency>
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-databind</artifactId>
 <version>2.9.0</version>
</dependency> 
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-annotations</artifactId>
 <version>2.9.0</version>
</dependency>
Copier après la connexion

2. Convertissez la chaîne au format json via jackson et réécrivez la chaîne.

@RequestMapping("/quick7")
@ResponseBody
public String quickMethod7() throws IOException {
    User user = new User();
    user.setUsername("zhangsan");
    user.setAge(18);
    ObjectMapper objectMapper = new ObjectMapper();
    String s = objectMapper.writeValueAsString(user);
    return s;
}
Copier après la connexion

Renvoyer des objets ou des collections

Utilisez SpringMVC pour nous aider à convertir des objets ou des collections en chaînes json et à les réécrire, configurer les paramètres de conversion de message pour l'adaptateur de processeur et spécifier l'utilisation de Jackson pour convertir des objets ou des collections, nous avons donc besoin utiliser spring -Configurez les éléments suivants dans mvc.xml :

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
 <property name="messageConverters">
     <list>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
     </list>
 </property>
</bean>
Copier après la connexion

Renvoyer des objets ou des collections directement dans la méthode

@RequestMapping("/quick8")
@ResponseBody
public User quickMethod8() throws IOException {
    User user = new User();
    user.setUsername("zhangsan");
    user.setAge(18);
    return user;
}
Copier après la connexion

3) Configurer le pilote d'annotation

Ajouter @ResponseBody à la méthode pour renvoyer une chaîne au format json, mais cela la configuration est plus gênante, il y a beaucoup de code de configuration, nous pouvons donc utiliser le pilote d'annotation de mvc au lieu de la configuration ci-dessus.

Parmi les différents composants de SpringMVC, le mappeur de processeur, l'adaptateur de processeur et le résolveur de vue sont appelés les trois composants principaux de SpringMVC.

Utilisez pour charger automatiquement RequestMappingHandlerMapping (mappeur de traitement) et RequestMappingHandlerAdapter (adaptateur de traitement), qui peuvent être utilisés dans le fichier de configuration Spring-xml.xml pour remplacer le fichier de configuration Spring-xml.xml. configuration du processeur d’annotation et de l’adaptateur.

Utilisez également Par défaut, la couche sous-jacente intégrera Jackson pour convertir les chaînes d'objets ou de collections au format json.

<!--在spring-mvc.xml中配置mvc的注解驱动--> 
<mvc:annotation-driven/>
Copier après la connexion

4) Points de connaissance

Méthode de réponse aux données de SpringMVC

1) Saut de page

  • Renvoyer directement la chaîne

  • Retour via l'objet ModelAndView

2) Réécrire les données

  • Chaîne de retour directement

  • Retourner objet ou collection

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal