1

春-セキュリティ:3.0.2フリーマーカー:2.3.19

freemarkerでspringSecurityタグを使用したいのですが、次のエラーがスローされます。

[16 14:10:46,349エラー] [btpool0-0] freemarker.runtime-テンプレート処理エラー:「http://www.springframework.org/security/tagsにマッピングが定義されていません」

http://www.springframework.org/security/tagsにマッピングが定義されていません

問題のある指示:

==>割り当て:security = JspTaglibs ["http://www.springframework.org/security/tags"] [1行目、macro/header.ftlの1列目]ユーザーディレクティブpage.bodytemplate[6行目、items.ftlの列1]

ftl:<#assign security = JspTaglibs ["http://www.springframework.org/security/tags"] />

pom.xml

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
        <version>3.0.2.RELEASE</version>
    </dependency>
4

4 に答える 4

2

問題がtomcat7-maven-pluginで発生し、jetty-maven-pluginでは発生しない場合は、tomcat7の完全に初期化されていないサーブレットコンテキストに苦しんでいる可能性があります。

「tomcat:run」の代わりに「tomcat:run-war」を実行します

後者は、/ WEB-INF / libsにjarがあるように、Webアプリが(ほぼ)完全にビルドおよびブートストラップされていることを確認します。フリーマーカーのTLDのスキャンロジックは魅力のように機能します。

于 2015-01-29T15:46:34.010 に答える
1

ダウンロードしたいタグライブラリにタグが含まれているようです org.springframework.security.taglibs.authz.AclTag。Spring Security taglibsの最後のバージョン(このクラスがあった)は2.0.7リリースであったため、問題が発生しました。

Springを2.0バージョンに変更できます。または、 https://src.springframework.org/svn/spring-security/branches/spring-2.5-integration-branch/taglibs/src/main/resources/META-INF/security.tldからsecurity.tldをダウンロードできます。次のようなfreemarkerテンプレートで使用します。<#assign security=JspTaglibs["/WEB-INF/tlds/security.tld"] />

ちなみに、http://www.springframework.org/security/tagsが機能しない理由がよくわかりません...あなたのように使用しようとしましたが、同じ問題に直面しました。

于 2012-10-18T18:57:22.513 に答える
1

run-jetty-runmavenモジュールに切り替えたときにこのエラーが発生しました。モジュールjetty:runにはこのエラーはありませんでした。

これは私を助けました:

  1. spring-security.tldファイルをダウンロードして、webapp / WEB-INF/tldフォルダーに配置します

  2. このコードをweb.xmlに追加します。

    <jsp-config>
        <taglib>
            <taglib-uri>http://www.springframework.org/security/tags</taglib-uri>
            <taglib-location>/WEB-INF/tld/spring-security.tld</taglib-location>
        </taglib> 
    </jsp-config>
    
于 2012-10-31T13:51:12.883 に答える
0

これが機能しない理由は、サーブレットコンテナ(およびおそらく仕様)に関係しています。名前空間によってtaglibsを関連付ける場合、JARがWEB-INF / libフォルダーにある場合にのみ、自動的に関連付けられます。

spring-security-taglibs.jarをWEB-INF/libフォルダーに移動すると、機能します。

于 2013-03-02T11:42:25.640 に答える