springmvc HTMLおよびJSPパーサ

1.複数のビューリゾルバ

InternalResourceViewResolverは、JSPページを解析するためのjspパーサを構築しました

ここでは、InternalResourceViewResolverを使用し、それがビューを作成しますbuildView方法を、持っている、それは(それがJSPの存在しない場合であっても)NULLとして見ることはありません。問題は、この中で、私たちは、このデフォルトを使用する場合であるので、知らない前方この時点でJSPを転送して使用するサーブレットが存在します。

ソリューション

最も簡単な方法は、ルールが処理できるかどうかを指定するには、そのviewNamesプロパティを使用することです

<プロパティ名= "viewNames"値= " weixinの*" />

<プロパティ名= "viewNames"値= "ベース*" />

意味の二つは、このようなパーサのweixin *にviewNamesを与えること/ weixinという名前のビューのリターンとして処理するためのベースを、開始weixinまたはビューの名前であるため、サポートのルールは、Javadocを表示することができます。

<! - ビューリゾルバは、要求に応じて異なる経路に応じて構成することができる- > 
< ビーンクラス=「org.springframework.web.servlet.view.InternalResourceViewResolver」> 
    < プロパティ=「viewNames」=「Weixin * " /> 
    < プロパティ="接頭辞" =" / "  /> 
    < プロパティ="サフィックス" =。" JSP "  /> 
    < プロパティ="注文" =" 0 "  /> 
</ >

< 豆のクラス= "org.springframework.web.servlet.view.InternalResourceViewResolver" > 
    < プロパティ= "viewNames" = "ベース*" /> 
    < プロパティ= "接頭辞" = "/ログイン/"  /> 
    < プロパティ= "接尾辞" "JSP" =  /> 
    < プロパティ= "オーダー" = "1"  /> 
</ > 

如何调用?
( "リダイレクト:weixin / index.jspの")を新しいのModelAndViewを返す; //走的是第一个视图解析器 
( "リダイレクト:ベース/ login.jspを")を新規のModelAndViewを返します。//まず、最初の決定要件を満たすために、第2のビューリゾルバに従って長く、weixinで起動しません

 

HTMLビューリゾルバの設定

freemarkは、HTMLページを解析する必要が

 

<! -     <豆ID = "defaultViewResolver"クラス= "org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <プロパティ名= "viewClass"値= "org.springframework.web.servlet.view.JstlView"> </プロパティ> 
        <プロパティ名= "接頭辞"値= "/ WEB-INF /ビュー/"> </ property>の
        <プロパティ名= "サフィックス"値= "JSP。"> </ property>の
    </豆> - - >

 

    < ビーンID = "freemarkerConfig" クラス= "org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer" > 
        < プロパティ= "templateLoaderPath" > 
            < > / WEB-INF /ビュー/ </ > 
        </ プロパティ> 
    </ > 
    < のid = "htmlviewResolver" 
          クラス= "org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver" > 
        < プロパティ= "接尾辞"= "htmlの"  />
        < プロパティ= "オーダー" = "0" > </ プロパティ> 
        < プロパティ= "contentTypeの" = "text / htmlの;のcharset = UTF-8" > </ プロパティ> 
    </ >

 

次のようにTomcatを実行すると、例外が発生する可能性があります。

java.lang.ClassNotFoundException:org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryによって引き起こさ
org.apache.catalina.loader.WebappClassLoaderBase.loadClassで(WebappClassLoaderBase.java: 1309)

依存関係を紹介:

    <依存性> 
      <のgroupId> org.springframework </のgroupId> 
      <たartifactId>ばねコンテキストサポート</たartifactId> 
        <バージョン> 4.3.13.RELEASE </バージョン> 
    </依存>

 

次のように例外がまだ表示される場合があります。

java.lang.ClassNotFoundException:freemarker.cache.TemplateLoaderによって引き起こされます

依存関係を紹介:

    <依存> 
      <groupIdを> org.freemarker </ groupIdを> 
      <たartifactId> FreeMarkerの</たartifactId> 
      <バージョン> 2.3.23 </バージョン> 
    </依存関係>

また、次の例外が発生する可能性があります。

java.lang.NoSuchFieldErrorの:によって引き起こさDEFAULT_INCOMPATIBLE_IMPROVEMENTS

この異常は、通常の依存関係が生じfreemarkバージョンによって提供される、freemarkバージョンを変更することによって解決することができる(一般freemark依存性の高いバージョンを使用)

おすすめ

転載: www.cnblogs.com/yelao/p/11684923.html