Maison Java javaDidacticiel Exemple de code du convertisseur de messages Spring

Exemple de code du convertisseur de messages Spring

Jul 19, 2017 pm 04:48 PM
消息 转换器

//domain

package com.crazy.goods.tools;/**
 * 0755-351512
 * @author Administrator
 * */public class Phone {private String qno;private String number;public String getQno() {return qno;
    }public void setQno(String qno) {this.qno = qno;
    }public String getNumber() {return number;
    }public void setNumber(String number) {this.number = number;
    }
    
}
Copier après la connexion

//Message Converter Pour implémenter une classe abstraite AbstractHttpMessageConverter

package com.crazy.goods.tools;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import org.springframework.http.HttpInputMessage;import org.springframework.http.HttpOutputMessage;import org.springframework.http.converter.AbstractHttpMessageConverter;import org.springframework.http.converter.HttpMessageNotReadableException;import org.springframework.http.converter.HttpMessageNotWritableException;public class MyMessageConvertor extends AbstractHttpMessageConverter<Phone> {/** * 将请求头数据转换成Phone     */
    @Overrideprotected Phone readInternal(Class<? extends Phone> arg0,
            HttpInputMessage msg) throws IOException,
            HttpMessageNotReadableException {//参数必须使用post提交必须在body中InputStream is=msg.getBody();
        BufferedReader br=new BufferedReader(new InputStreamReader(is));
        String param=br.readLine();
        String phone=param.split("=")[1];
        Phone phoneObj=new Phone();
        phoneObj.setQno(phone.split("-")[0]);
        phoneObj.setNumber(phone.split("-")[1]);return phoneObj;
    }/** * 当前的转换器支持转换的类     */@Overrideprotected boolean supports(Class<?> arg0) {if(arg0==Phone.class){return true;
        }return false;
    }/** * 用于将返回的对象转换成字符串显示在网页     */@Overrideprotected void writeInternal(Phone phone, HttpOutputMessage arg1)throws IOException, HttpMessageNotWritableException {
        String p=phone.getQno()+"-"+phone.getNumber();
        arg1.getBody().write(p.getBytes("UTF-8"));
    }

}
Copier après la connexion

//springmvc . xml Pour configurer le convertisseur bean: message, seule la méthode de soumission post sera interceptée par le convertisseur

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/context http://www.springframework.org/schema/tx http://www.springframework.org/schema/aop http://www.springframework.org/schema/mvc ">
    <!--springmvc只能扫描控制层  -->
    <context:component-scan base-package="com.crazy.goods">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
    </context:component-scan>
    
    <!--消息转换器 必须使用post提交   -->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="com.crazy.goods.tools.MyMessageConvertor">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                          <value>application/x-www-form-urlencoded</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
</beans>
Copier après la connexion

test de servlet

<br>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

package com.crazy.goods.servlet;

<br>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

importer java.io.IOException;

<br>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

importer javax.servlet.ServletException;<br>importer javax.servlet.annotation. WebServlet;<br>importer javax.servlet.http.HttpServlet;<br>importer javax.servlet.http.HttpServletRequest;<br>importer javax.servlet.http.HttpServletResponse;

<br>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

importer org. springframework.stereotype.Controller;<br>importer org.springframework.web.bind.annotation.PathVariable;<br>importer org.springframework.web.bind.annotation.RequestBody;<br>importer org.springframework.web.bind. annotation.RequestMapping;<br>import org.springframework.web.bind.annotation.RequestMethod;<br>import org.springframework.web.bind.annotation.ResponseBody;

<br>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

import com.crazy. marchandises.tools.Phone;

<br>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

/**<br> * @author Administrator<br> * Créé le 1er juillet 2017 à 15:11:27 <br>*/<br>@Controller<br>classe publique ReservePageServelt {

<br>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

// /**<br>// * forward : forward <br>// * redirect : redirect <br>// * @param req<br>// * @param resp<br>// * @return<br>// * @throws ServletException<br>// * @throws IOException<br>//*/<br>// @RequestMapping(value="/add",method={RequestMethod.GET})<br>// public String doGet(HttpServletRequest req, HttpServletResponse resp/*,@PathVariable("testid" ) String testid*/) lance ServletException, IOException {<br>// req.getRequestDispatcher("/reversegood.jsp").forward(req, resp);<br>// return "/reversegood.jsp";<br>// resp.getWriter().print(testid);<br>// }<br><br><br> //Idée de convertisseur de message, <br><br> //Le principe est de convertir la requête body ou Les données de l'en-tête de la requête sont converties en paramètres de la méthode d'action, et le contenu de la valeur de retour de la méthode est converti en en-tête de réponse <br> //Lorsque l'on accède au chemin de l'url, l'annotation @RequestBody est utilisé.Cette annotation identifie que cette classe doit être traitée par le convertisseur de message, le convertisseur de message sera lu dans le fichier springmvcxml, puis entrera la méthode supports <br> // Détermine si cette classe est prise en charge par le spécifié. convertisseur. S'il est pris en charge, appelez la méthode readInternal, coupez, puis ajoutez la valeur Passée dans l'objet, une fois le traitement terminé dans l'objet, writeInternal sera appelé pour le convertir en en-tête de réponse<br> @RequestMapping(value ="/add")<br> @ResponseBody<br> public Phone messageConvertor( @RequestBody Phone phone,HttpServletResponse réponse) {<br> System.out.println(phone.getQno()+phone.getNumber());<br>retour de téléphone;<br><br>><br><br>}

 <br>
Copier après la connexion

Résumé : Le principe du convertisseur de message est de personnaliser la demande données du corps en paramètres formels (objets), puis convertissez le contenu de la valeur de retour de la méthode en en-tête de réponse

Étapes :

Lorsque vous accédez au chemin de l'URL, vous verrez le @RequestBody L'annotation est utilisée.Cette annotation indique que cette classe doit être traitée par le convertisseur de message, et le convertisseur de message sera lu dans le fichier springmvcxml. Entrez ensuite la méthode supports <br> pour déterminer si cette classe est prise en charge par le convertisseur spécifié. . S'il est pris en charge, appelez la méthode readInternal, effectuez la découpe, puis transférez la valeur à l'objet

Une fois le traitement terminé en objet, WriteInternal sera appelé pour convertir en en-tête de réponse

.

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'est-ce que cela signifie lorsqu'un message a été envoyé mais rejeté par l'autre partie ? Qu'est-ce que cela signifie lorsqu'un message a été envoyé mais rejeté par l'autre partie ? Mar 07, 2024 pm 03:59 PM

Le message a été envoyé mais rejeté par l'autre partie. Cela signifie que les informations envoyées ont été envoyées avec succès depuis l'appareil, mais pour une raison quelconque, l'autre partie n'a pas reçu le message. Plus précisément, cela est généralement dû au fait que l'autre partie a défini certaines autorisations ou pris certaines actions, ce qui empêche la réception normale de vos informations.

Comment balayer vers la droite et répondre rapidement dans iMessage sur iOS 17 Comment balayer vers la droite et répondre rapidement dans iMessage sur iOS 17 Sep 20, 2023 am 10:45 AM

Comment utiliser Swipe to Répondre dans iMessages sur iPhone Remarque : la fonctionnalité Swipe to Répondre ne fonctionne qu'avec les conversations iMessage dans iOS 17, pas avec les conversations SMS classiques dans l'application Messages. Ouvrez l'application Messages sur votre iPhone. Ensuite, dirigez-vous vers la conversation iMessage et faites simplement glisser votre doigt vers la droite sur l'iMessage auquel vous souhaitez répondre. Une fois cela fait, l'iMessage sélectionné sera mis au point tandis que tous les autres messages seront flous en arrière-plan. Vous verrez une zone de texte pour saisir une réponse et une icône "+" pour accéder aux applications iMessage telles que les enregistrements, les lieux, les autocollants, les photos, etc. Entrez simplement votre message,

iOS 17 : Comment utiliser les emojis comme autocollants dans Messages iOS 17 : Comment utiliser les emojis comme autocollants dans Messages Sep 18, 2023 pm 05:13 PM

Dans iOS17, Apple a ajouté plusieurs nouvelles fonctionnalités à son application Messages pour rendre la communication avec d'autres utilisateurs Apple plus créative et plus amusante. L'une des fonctionnalités est la possibilité d'utiliser des emojis comme autocollants. Les autocollants existent dans l’application Messages depuis des années, mais jusqu’à présent, ils n’ont pas beaucoup changé. En effet, dans iOS17, Apple traite tous les emojis standards comme des autocollants, ce qui leur permet d'être utilisés de la même manière que de véritables autocollants. Cela signifie essentiellement que vous n'êtes plus limité à les insérer dans les conversations. Désormais, vous pouvez également les faire glisser n'importe où sur la bulle de message. Vous pouvez même les empiler les uns sur les autres pour créer de petites scènes d'emoji. Les étapes suivantes vous montrent comment cela fonctionne dans iOS17

Si un message a été envoyé mais rejeté par l'autre partie, doit-il être bloqué ou supprimé ? Si un message a été envoyé mais rejeté par l'autre partie, doit-il être bloqué ou supprimé ? Mar 12, 2024 pm 02:41 PM

1. Être ajouté à la liste noire : si le message a été envoyé mais rejeté par l'autre partie, il est généralement sur la liste noire. À ce moment-là, vous ne pourrez pas envoyer de messages à l'autre partie, et l'autre partie ne le sera pas. capable de recevoir vos messages. 2. Problèmes de réseau : si l'état du réseau du destinataire est mauvais ou en cas de panne de réseau, le message risque de ne pas être reçu avec succès. À ce stade, vous pouvez essayer d'attendre que le réseau revienne à la normale avant de renvoyer le message. 3. L'autre partie a configuré Ne pas déranger : Si le destinataire a configuré Ne pas déranger dans WeChat, les messages de l'expéditeur ne seront ni rappelés ni affichés pendant une certaine période de temps.

Comment modifier des messages sur iPhone Comment modifier des messages sur iPhone Dec 18, 2023 pm 02:13 PM

L'application native Messages sur iPhone vous permet de modifier facilement les textes envoyés. De cette façon, vous pouvez corriger vos erreurs, votre ponctuation et même corriger automatiquement les mauvaises expressions/mots qui ont pu être appliqués à votre texte. Dans cet article, nous apprendrons comment modifier des messages sur iPhone. Comment modifier des messages sur iPhone Requis : iPhone exécutant iOS16 ou version ultérieure. Vous ne pouvez modifier le texte iMessage que sur l'application Messages, et seulement dans les 15 minutes suivant l'envoi du texte original. Le texte non iMessage n’est pas pris en charge, il ne peut donc pas être récupéré ou modifié. Lancez l'application Messages sur votre iPhone. Dans Messages, sélectionnez la conversation à partir de laquelle vous souhaitez modifier le message

Comment configurer le Xiaomi Mi 14 Pro pour éclairer l'écran des messages ? Comment configurer le Xiaomi Mi 14 Pro pour éclairer l'écran des messages ? Mar 18, 2024 pm 12:07 PM

Xiaomi 14Pro est un modèle phare avec d'excellentes performances et configuration. Il a réalisé des ventes élevées depuis sa sortie officielle. De nombreuses petites fonctions du Xiaomi 14Pro seront ignorées par tout le monde. Par exemple, il peut être configuré pour éclairer l'écran pour les messages. la fonction est petite, mais elle est très pratique. Tout le monde rencontrera divers problèmes lors de l'utilisation du téléphone portable. Alors, comment configurer le Xiaomi 14Pro pour éclairer l'écran des messages ? Comment configurer le Xiaomi Mi 14 Pro pour éclairer l'écran des messages ? Étape 1 : Ouvrez l’application Paramètres de votre téléphone. Étape 2 : faites glisser votre doigt vers le bas jusqu'à ce que vous trouviez l'option « Écran de verrouillage et mot de passe » et cliquez pour entrer. Étape 3 : Dans le menu « Écran de verrouillage et code d'accès », recherchez et cliquez sur l'option « Activer l'écran pour les notifications ». Étape 4 : Sur la page « Activer l'écran lors de la réception de notifications », activez le commutateur pour activer

Le convertisseur TabTransformer améliore les performances du perceptron multicouche, analyse approfondie Le convertisseur TabTransformer améliore les performances du perceptron multicouche, analyse approfondie Apr 17, 2023 pm 03:25 PM

Aujourd'hui, les Transformers sont des modules clés dans les architectures de traitement du langage naturel (NLP) et de vision par ordinateur (CV) les plus avancées. Cependant, le domaine des données tabulaires est toujours dominé par les algorithmes d’arbre de décision à gradient boosté (GBDT). Il y a donc eu des tentatives pour combler cet écart. Parmi eux, le premier article de modélisation de données tabulaires basé sur un convertisseur est l'article « TabTransformer : Tabular Data Modeling Using Context Embedding » publié par Huang et al. Cet article vise à fournir une présentation de base du contenu de l'article, tout en approfondissant les détails de mise en œuvre du modèle TabTransformer et en vous montrant comment utiliser spécifiquement Ta pour nos propres données.

Mar 22, 2024 pm 02:18 PM

Date de sortie du Vivox100 confirmée ! Les dernières nouvelles ont été annoncées. Récemment, il y a eu un engouement pour les Vivox100 dans le monde de la technologie. Ce produit très attendu a finalement confirmé sa date de sortie, ce qui a enthousiasmé de nombreux consommateurs et passionnés de technologie. Il est rapporté que les Vivox100 seront officiellement lancés à la fin de ce mois. Quelles surprises cela apportera-t-il ? Quels sont les points forts du nouveau produit tant attendu ? Découvrons ensemble ce mystère technologique ? Vivox100s, en tant que dernier chef-d'œuvre de la série Vivox, a attiré beaucoup d'attention depuis son exposition.

See all articles