0

最近、春の mvc 4 + hibernate 4 + tiles 3 プロジェクトにデータテーブルを統合し始めまし

さまざまな言語をサポートするヘッダーを表示したい。

だから私はこのリンクから始めました。

このページによると、ヘッダーに???key???メッセージが表示されることが示唆されています。

Id列ヘッダーに表示したいのですが、表示されています???table.header.id???

このリンクは言う

バンドル内にキーが見つからない場合、???key??? メッセージが列ヘッダーに表示されます。

しかし、私は以下を入れましたdatatables.properties

i18n.locale.resolver=com.github.dandelion.datatables.extras.spring3.i18n.SpringLocaleResolver
global.i18n.message.resolver=com.github.dandelion.datatables.extras.spring3.i18n.SpringMessageResolver

も入れましたglobal_en.properties

table.header.id=ID

global.properties..と同じファイルもコピーしましたが、機能しませんでした。

私のjspファイルには

<datatables:table id="users" ...>
   <datatables:column titleKey="table.header.id" property="userId" />
<datatables:table />

私のリソースフォルダー構造は

res 構造

どこに置こうtable.header.id=Idかな??

どんな助けも必要です。前もって感謝します。

注:AJAX source +を使用していserver-side processingます。

4

1 に答える 1

1

メッセージの場所について

ベース名としてSpringResourceBundleMessageSourceを使用しているようですglobal。したがって、ヘッダー列のすべての翻訳をファイルに入れることは理にかなっていglobal_*.propertiesます。

???key???メッセージについて

v0.10.0 で導入されたバグであることが判明しました。

次のバージョンがリリースされるのを待って、回避策がありますが、DOM ソースでのみ動作します。以下、手順に従います。

titleKey1) column 属性を使用する代わりに、<spring:message>タグを使用します。理論的には、これらはまったく同じことを行います。つまり、構成済みのリソース バンドル内のリソースを検索します。

JSP で Spring taglib を宣言することから始めます。

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

2) 次に、Dandelion-Datatables taglib の使用法を更新する必要があります。回避策として、<datatables:columnHead>( docs here ) タグを使用して、列ヘッダーに任意のコンテンツを挿入できます。

次のように使用してください。

<datatables:table id="users" ... row="user" >
    ...
    <datatables:column>

        <%-- Everything inside this tag will only appear in the header column --%>
        <datatables:columnHead>
            <spring:message code="table.header.id" /> <== this will appear in the column header only
        </datatables:columnHead>

        <%-- Everything else will appear in all cells --%>            
        <c:out value="${person.id}" /> <== this will appear in all column cells
    </datatables:column>
    ...
<datatables:table />

いくつかの観察:

  • JSTLrowのタグで行われるように、反復されるコレクションのオブジェクトにアクセスする必要がある場合は、テーブル属性を追加する必要があります<c:out>
  • propertycolumn 属性を削除する必要があります。削除しないと、<datatables:column>タグの内容が評価されません

これは非常に手間のかかる作業であり、収益はほとんどありません。申し訳ありませんが、次のバージョンがリリースされるのを待っています。少なくとも機能します。新しい問題が追加されました。

AJAX source+を使用している場合server-side processing

最初に変数を作成します

<spring:message code="table.header.id" var="titleId" /> 

そしてそれを追加しました

<datatables:column title="${titleId}" property="userId" />

また、ここで修正を入手できます。お手数ですがバージョンアップをお願いいたします 0.10.1-SNAPSHOT

(StackOverflow が必要とする免責事項: 私は Dandelion の作成者です)

于 2014-06-03T14:48:51.997 に答える