ホームページ Java &#&チュートリアル Springメッセージコンバータのサンプルコード

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;
    }
    
}
ログイン後にコピー

//メッセージコンバータ 抽象クラス 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"));
    }

}
ログイン後にコピー

//springmvc.xml Bean: メッセージコンバータを設定するには、送信後メソッドのみがコンバータによってインターセプトされます

<?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>
ログイン後にコピー

サーブレットのテスト

<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

package com.crazy.goods.servlet;

<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

import java.io.IOException;

<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

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

<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

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

<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

import com.crazy.goods.tools.Phone;

<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

/**<br> * @author Administrator<br> * 作成日: 2017 年 7 月 1 日 3:11:27 PM<br>*/<br>@Controller<br>public class ReservePageServelt {

<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

// /* *<br>// * 転送: 転送 <br>// * リダイレクト: リダイレクト <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*/) throws ServletException, IOException {<br>// req.getRequestDispatcher("/reversegood.jsp").forward(req, resp);<br>// return "/reversegood.jsp";<br>// resp.getWriter() .print(testid);<br>// }<br><br><br> //メッセージコンバータのアイデア、<br><br> //原則は、リクエストボディまたはリクエストヘッダーデータをアクションメソッドのパラメータに変換し、同時に、メソッドの戻り値の内容 応答ヘッダーの場合 <br> //URL パスにアクセスすると、@RequestBody アノテーションが使用されることがわかります。このアノテーションは、このクラスがメッセージ コンバーターによって処理されることを示し、メッセージ コンバーターが処理されます。 springmvcxml ファイルを読み込み、supports メソッドを入力します <br> / /このクラスが指定されたコンバーターでサポートされているかどうかを確認し、サポートされている場合は、readInternal メソッドを呼び出し、カットを実行し、処理後に値をオブジェクトに渡します。がオブジェクトに完成すると、writeInternal が呼び出されてレスポンスヘッダーに変換されます<br> @RequestMapping(value ="/add")<br> @ResponseBody<br> public Phone messageConvertor( @RequestBody Phone,HttpServletResponse response) {<br> System.out.println (phone.getQno()+phone.getNumber());<br> return Phone;<br><br> } <br><br>}

 <br>
ログイン後にコピー

概要: メッセージ コンバーターの原理は、リクエスト本文のデータを形式的なパラメーター (オブジェクト) にカスタマイズすることです。 )、メソッドの戻り値の内容を応答ヘッダーに変換します

手順:

URL パスにアクセスすると、@RequestBody アノテーションが使用されていることがわかります。このアノテーションは、このクラスがメッセージによって処理されることを示します。メッセージコンバーターが springmvcxml ファイルに読み込まれ、このクラスがサポートしているかどうかを判別するために support メソッドが入力されます。サポートしている場合は、readInternal メソッドを呼び出して、それを渡します。オブジェクトへの値。<br>

オブジェクトへの処理が完了したら、writeInternalを呼び出してレスポンスヘッダーに変換します

以上がSpringメッセージコンバータのサンプルコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

メッセージを送信したが相手に拒否された場合は何を意味するのでしょうか? メッセージを送信したが相手に拒否された場合は何を意味するのでしょうか? Mar 07, 2024 pm 03:59 PM

メッセージを送信しましたが、相手に拒否されました これは、送信した情報はデバイスから正常に送信されましたが、何らかの理由で相手がメッセージを受信できなかったことを意味します。具体的には、通常、相手が特定の権限を設定しているか、特定のアクションを行っているため、あなたの情報が正常に受信されないことが原因です。

iOS 17 の iMessage で右にスワイプしてすばやく返信する方法 iOS 17 の iMessage で右にスワイプしてすばやく返信する方法 Sep 20, 2023 am 10:45 AM

iPhone の iMessage でスワイプして返信する方法 注: スワイプして返信機能は、iOS 17 の iMessage 会話でのみ機能し、メッセージ アプリでの通常の SMS 会話では機能しません。 iPhone でメッセージ アプリを開きます。次に、iMessage の会話に移動し、返信したい iMessage を右にスワイプします。これが完了すると、選択した iMessage に焦点が合い、他のすべてのメッセージは背景でぼやけます。返信を入力するためのテキスト ボックスと、チェックイン、場所、ステッカー、写真などの iMessage アプリにアクセスするための「+」アイコンが表示されます。メッセージを入力するだけで、

iOS 17: メッセージで絵文字をステッカーとして使用する方法 iOS 17: メッセージで絵文字をステッカーとして使用する方法 Sep 18, 2023 pm 05:13 PM

iOS17 では、Apple はメッセージ アプリにいくつかの新機能を追加し、他の Apple ユーザーとのコミュニケーションをより創造的で楽しいものにしました。絵文字をスタンプとして利用できるのも特徴の1つです。ステッカーはメッセージ アプリで何年も使用されてきましたが、これまでのところ大きな変化はありません。これは、iOS17 では、Apple がすべての標準絵文字をステッカーとして扱い、実際のステッカーと同じように使用できるようにするためです。これは基本的に、会話にそれらを挿入することに制限がなくなったことを意味します。メッセージバブル上の任意の場所にドラッグすることもできるようになりました。それらを重ねて小さな絵文字シーンを作成することもできます。次の手順は、iOS17 での動作を示しています。

メッセージを送信しましたが、相手に拒否されました。ブロックまたは削除したほうがよいでしょうか? メッセージを送信しましたが、相手に拒否されました。ブロックまたは削除したほうがよいでしょうか? Mar 12, 2024 pm 02:41 PM

1. ブラックリストに追加される: メッセージは送信されましたが、相手によって拒否されます。通常、あなたはブラックリストに登録されます。この時点で、あなたは相手にメッセージを送信できなくなり、相手もメッセージを送信できなくなります。あなたのメッセージを受信できるようになります。 2. ネットワークの問題: 受信者のネットワーク状態が悪い場合、またはネットワーク障害がある場合、メッセージが正常に受信されない可能性があります。この時点で、メッセージを再度送信する前に、ネットワークが通常に戻るのを待つことができます。 3. 相手が「おやすみ」を設定している場合: 受信者が WeChat でおやすみを設定している場合、送信者のメッセージは一定期間通知されず、表示されません。

iPhoneでメッセージを編集する方法 iPhoneでメッセージを編集する方法 Dec 18, 2023 pm 02:13 PM

iPhone のネイティブ メッセージ アプリを使用すると、送信されたテキストを簡単に編集できます。このようにして、間違いや句読点を修正したり、テキストに適用された可能性のある間違った語句や単語を自動修正したりすることができます。この記事では、iPhone でメッセージを編集する方法を学びます。 iPhone でメッセージを編集する方法 必須: iOS16 以降を実行している iPhone。 iMessage テキストはメッセージ アプリでのみ編集でき、元のテキストを送信してから 15 分以内に限り編集できます。 iMessage 以外のテキストはサポートされていないため、取得または編集できません。 iPhone でメッセージ アプリを起動します。 [メッセージ] で、メッセージを編集する会話を選択します

Xiaomi Mi 14 Proをセットアップしてメッセージ画面を点灯させるにはどうすればよいですか? Xiaomi Mi 14 Proをセットアップしてメッセージ画面を点灯させるにはどうすればよいですか? Mar 18, 2024 pm 12:07 PM

Xiaomi 14Proは、優れたパフォーマンスと構成を備えたフラッグシップモデルです。正式リリース以来、高い売上を達成しています。Xiaomi 14Proの多くの小さな機能は誰もが無視するでしょう。たとえば、メッセージのために画面を点灯するように設定できます。機能は小さいですが、非常に実用的です。携帯電話を使用すると、誰もがさまざまな問題に遭遇するでしょう。それでは、Xiaomi 14Pro をメッセージ用に画面を点灯するように設定するにはどうすればよいですか? Xiaomi Mi 14 Proをセットアップしてメッセージ画面を点灯させるにはどうすればよいですか?ステップ 1: 携帯電話の設定アプリを開きます。ステップ 2: 「ロック画面とパスワード」オプションが見つかるまで下にスワイプし、クリックして入力します。ステップ 3: 「ロック画面とパスコード」メニューで、「通知のために画面をオンにする」オプションを見つけてクリックします。ステップ 4: [通知を受信したときに画面をオンにする] ページで、スイッチをオンにして有効にします。

TabTransformer コンバーターにより、多層パーセプトロンのパフォーマンスの詳細な分析が向上 TabTransformer コンバーターにより、多層パーセプトロンのパフォーマンスの詳細な分析が向上 Apr 17, 2023 pm 03:25 PM

現在、Transformers は、最も高度な自然言語処理 (NLP) およびコンピューター ビジョン (CV) アーキテクチャの主要なモジュールです。ただし、表形式データの分野では、依然として勾配ブースト決定木 (GBDT) アルゴリズムが主流です。そこで、このギャップを埋める試みが行われました。その中で、最初のコンバーターベースの表形式データモデリングの論文は、2020年にHuangらによって出版された論文「TabTransformer: Tabular Data Modeling using Context Embedding」です。この記事の目的は、論文の内容の基本的なプレゼンテーションを提供すると同時に、TabTransformer モデルの実装の詳細を掘り下げ、独自のデータに Ta を具体的に使用する方法を示すことです。

Vivox100sの発売日が決定しました!最新ニュースを誰よりも早く知りましょう Vivox100sの発売日が決定しました!最新ニュースを誰よりも早く知りましょう Mar 22, 2024 pm 02:18 PM

Vivox100sの発売日が決定しました!最新ニュースがプレビューされました。最近、テクノロジーの世界で Vivox100 が熱狂しています。この待望の製品がついに発売日を確認し、多くの消費者やテクノロジー愛好家を興奮させています。 Vivox100s が今月末に正式にリリースされるとの報道がありますが、それはどのような驚きをもたらすのでしょうか? 待望の新製品のハイライトは何ですか? この技術的な謎を一緒に解明しましょう。 Vivox100sは、Vivoxシリーズの最新傑作として、発表以来大きな注目を集めてきました。

See all articles