Java SpringMVC データ応答例の分析

WBOY
リリース: 2023-05-21 12:16:06
転載
780 人が閲覧しました

1) ページ ジャンプ

文字列を直接返す: このメソッドは、返された文字列をビュー パーサーのプレフィックスおよびサフィックスと連結してからジャンプします。

Java SpringMVC データ応答例の分析

プレフィックスが付いた文字列を返します:

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

Heavy Orientation : redirect:/index.jsp

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

転送する場合、リクエストフィールドにデータを格納して JSP ページに表示する必要があることがよくあります。コントローラー内のコントローラーにデータを送信しますか? リクエスト ドメインにデータを保存する場合はどうでしょうか?

① SpringMVC フレームワークによって挿入されたリクエスト オブジェクトの setAttribute() メソッドを通じて設定されます。

@RequestMapping("/quick")
public String quickMethod(HttpServletRequest request){
    request.setAttribute("name","zhangsan");
    return "index";
}
ログイン後にコピー

② ModelAndView の addObject() メソッドで設定します。

@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    modelAndView.addObject("name","lisi");
    return modelAndView;
}
ログイン後にコピー

2) データを書き戻す

文字列を直接返す: Web の基本段階では、クライアントはサーバーにアクセスします。文字列を直接書き戻して応答として返したい場合は、本文では、response .getWriter().print("hello world") を使用するだけで十分です。では、コントローラーに文字列を直接書き戻したい場合はどうすればよいでしょうか?

① response.getWriter().print("hello world") を使用して、SpringMVC フレームワークによって挿入された応答オブジェクトを通じてデータを書き戻します。このとき、ビュー ジャンプは必要なく、戻り値はビジネス方法は無効です。

@RequestMapping("/quick4")
public void quickMethod4(HttpServletResponse response) throws IOException {
    response.getWriter().print("hello world");
}
ログイン後にコピー

② 書き戻す必要がある文字列を直接返しますが、この時点では @ResponseBody アノテーションを介して SpringMVC フレームワークに通知する必要があります。メソッドによって返される文字列はジャンプではなく、直接返されます。 http 応答本文内。

@RequestMapping("/quick5")
@ResponseBody
public String quickMethod5() throws IOException {
    return "hello springMVC!!!"; 
}
ログイン後にコピー

開発では、複雑な Java オブジェクトを JSON 形式の文字列に変換する必要があることがよくあります。Web 段階で学習した JSON 変換ツール jackson を使用して変換できます。

1 . pom 内で、ジャクソン座標を xml にインポートします。

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

2. jackson を通じて json 形式の文字列を変換し、その文字列を書き戻します。

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

オブジェクトまたはコレクションを返す

SpringMVC を使用すると、JSON 文字列を変換してオブジェクトまたはコレクションを書き戻し、プロセッサ アダプタのメッセージ変換パラメータを構成し、オブジェクトまたはオブジェクトに jackson を使用するように指定できます。 collections コレクション変換のため、以下の設定を spring-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>
ログイン後にコピー

メソッドで直接オブジェクトまたはコレクションを返す

@RequestMapping("/quick8")
@ResponseBody
public User quickMethod8() throws IOException {
    User user = new User();
    user.setUsername("zhangsan");
    user.setAge(18);
    return user;
}
ログイン後にコピー

3) アノテーション ドライバーを設定

メソッドに @ResponseBody を追加すると json 形式の文字列を返すことができますが、この設定は面倒で設定コードも多く必要となるため、上記の設定の代わりに mvc アノテーション ドライバーを使用することができます。

SpringMVC のさまざまなコンポーネントの中で、プロセッサ マッパー、プロセッサ アダプター、ビュー リゾルバーは SpringMVC の 3 つの主要コンポーネントと呼ばれます。

を使用して、RequestMappingHandlerMapping (処理マッパー) と RequestMappingHandlerAdapter (処理アダプター) を自動的にロードします。これらは、Spring-xml.xml 構成ファイル

も使用します。デフォルトでは、基礎となる層は jackson を統合して、オブジェクトまたはコレクションの json 形式の文字列を変換します。

<!--在spring-mvc.xml中配置mvc的注解驱动--> 
<mvc:annotation-driven/>
ログイン後にコピー

4) 知識ポイント

SpringMVC のデータ応答方法

1) ページジャンプ

  • #文字列を直接返す

  • ModelAndView オブジェクトを介して戻る

2) データを書き戻す

  • #オブジェクトまたはコレクションを返す

以上がJava SpringMVC データ応答例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート