フラグメントのBeanプリプロセッサがフォームオブジェクトを正しく処理しない

チャンス_:

私はアプリの柔軟なページネーションソリューションに取り組んできました。フラグメントコードは次のとおりです。

<div th:fragment="pagination(form, postUrl)">
    <nav aria-label="Page Navigation">
        <ul class="pagination justify-content-center">
            <li class="page-item"
                th:classappend="${form?.page == 1} ? disabled : ''">
                <form th:action="@{${postUrl}}" th:object="${__${form}__}"
                    method="post">
                    <input hidden th:field="${form?.page}" th:value="${form?.page} - 1" />
                    <button class="page-link" th:text="#{page.previous}" />
                </form>
            </li>

            <div
                th:with="pageLimit=${form?.totalPages > 0} ? ${form?.totalPages} : 1">
                <li class="page-item"
                    th:each="i : ${#numbers.sequence(1, pageLimit)}">
                    <form th:action="@{${postUrl}}" th:object="${__${form}__}"
                        method="post">
                        <input hidden th:field="*{page}" th:value="${i}" />
                        <button class="page-link" style="border-radius: 0px"
                            th:text="${i}" />
                    </form>
                </li>
            </div>

            <li class="page-item">
                <form th:action="@{${postUrl}}" th:object="${__${form}__}"
                    method="post">
                    <input hidden th:field="*{page}" th:value="${form?.page} + 1" />
                    <button class="page-link" th:text="#{page.next}" />
                </form>
            </li>
        </ul>
    </nav>
</div>

そしてフラグメント変数はこのように渡されます:

<div
    th:replace="fragments/pagination :: pagination(${objectForm}, '/my/url-is-here')">

ただし、ビューを処理すると、次のエラーが発生します(わかりやすくするために省略しています)。

Exception evaluating SpringEL expression: "my.object.ObjectForm@66bc4dd8" (template: "fragments/pagination" - line 6, col 37)
...
org.springframework.expression.spel.SpelParseException: EL1041E: After parsing a valid expression, there is still more data in the expression: 'bean_ref(@)'

これは、Beanの前処理で間違いなく間違いです。フラグメント__${form}__th:with変数を使用せずにコードをそのまま使用すると、問題はありません。では、ここで何が起こっているのか誰か知っていますか?

どんな洞察もいただければ幸いです!

チャンス_:

それで、私はそれについてさらに作業しましたが、Thymeleaf変数がどのように使用されているのかを誤解していることがわかりました。私はそれが何かと関係があると信じていth:fieldます。それを変更してname問題解決しました。

私の理解では、Thymeleaf変数はすでに処理されており、追加の処理を必要としない変数であるため、__ $ {form} __は機能しません。

さらに、私がこれに取り組んだとき、私は変数にformVariablesプレーンテキストをth属性に渡すだけでは機能しないことがわかったので、最初に処理する必要があるため、プリプロセッサーになることがわかりました

<div class="sticky-top paginator" th:fragment="pagination(form, postUrl, formVariables)">
        <nav aria-label="Page Navigation">

            <ul class="pagination justify-content-center">
                <li class="page-item"
                    th:classappend="${form.page == 1} ? disabled : ''">
                    <form th:action="@{${postUrl}}" th:object="${form}" method="post">

                        <div th:include="__${formVariables}__"></div>
                        <input hidden name="page" th:value="${form.page - 1}" />

                        <button class="page-link" th:text="#{page.previous}" />
                    </form>
                </li>

                <th:block
                    th:with="pageLimit=${form.totalPages > 0} ? ${form?.totalPages} : 1">
                    <li th:each="i : ${#numbers.sequence(1, pageLimit)}"
                        class="page-item" th:classappend="${i == form.page} ? active : ''">
                        <form th:action="@{${postUrl}}" th:object="${form}" method="post">

                            <div th:include="__${formVariables}__"></div>
                            <input hidden name="page" th:value="${i}" />

                            <button class="page-link" style="border-radius: 0px"
                                th:text="${i}" />
                        </form>
                    </li>
                </th:block>

                <li class="page-item"
                    th:classappend="${form.page >= form.totalPages} ? disabled : ''">
                    <form th:action="@{${postUrl}}" th:object="${form}" method="post">

                        <div th:include="__${formVariables}__"></div>
                        <input hidden name="page" th:value="${form.page + 1}" />

                        <button class="page-link" th:text="#{page.next}" />
                    </form>
                </li>

            </ul>


        </nav>
</div>

誰かがこれが便利だと思うことを願っています!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Djangoプロジェクトのjqueryスクリプトがフォームの送信を検出しない

分類Dev

Windows 7と比較してWindows 10のパフォーマンスが低い(16ページを超えるスレッドがない場合、ページフォールト処理はスケーラブルではなく、重大なロック競合)

分類Dev

Windows 7と比較してWindows 10のパフォーマンスが低い(16ページを超えるスレッドがない場合、ページフォールト処理はスケーラブルではなく、重大なロック競合)

分類Dev

Windows 7と比較してWindows 10のパフォーマンスが低い(16ページを超えるスレッドがない場合、ページフォールト処理はスケーラブルではなく、重大なロック競合)

分類Dev

Windows 7と比較してWindows 10のパフォーマンスが低い(16ページを超えるスレッドがない場合、ページフォールト処理はスケーラブルではなく、重大なロック競合)

分類Dev

プロジェクト内のEveyユーザーフォームのStartUpPositionを変更してくださいエラー:オブジェクトはプロパティをサポートしていません

分類Dev

テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

分類Dev

Twilioの「プログラム可能なビデオ」JWTアクセストークンを正しく処理する方法は?(アンドロイド)

分類Dev

クロスプラットフォームのオープンソースUIに依存しないC#クラスライブラリに選択するVisual Studio 2017プロジェクトタイプとその理由は何ですか?

分類Dev

些細なmacOSアセンブリ64ビットプログラムのスタックアライメントが正しくない

分類Dev

アウトバーンサブスクリプションからのメッセージを非同期で非ブロッキングで処理します

分類Dev

Djangoモデルフォームのsave()メソッドがプロファイルオブジェクトを作成しない

分類Dev

フラグメントシェーダーの「不正なプリプロセッサディレクティブ」?

分類Dev

ブートストラップ4フィールドがフォームグループインラインで正しく整列しない

分類Dev

Rustがデフォルトのジェネリックパラメータタイプを使用しない理由

分類Dev

APIプラットフォーム-シリアル化グループが正しく機能しない

分類Dev

Xamarin Mac、C#を使用したクロスブラウザ、クロスプラットフォームのネイティブメッセージング

分類Dev

MirthのプリプロセッサフェーズでJavaオブジェクトをXMLにマーシャリングしますか?

分類Dev

MirthのプリプロセッサフェーズでJavaオブジェクトをXMLにマーシャリングしますか?

分類Dev

オブジェクトとウィンドウフォームの衝突検出のロジックが正しく機能していません。

分類Dev

フォームデータのオブジェクトが正しく処理されていません

分類Dev

ドメインオブジェクトを使用しない一般的なJSONメッセージの処理

分類Dev

メッセンジャー ボット プラットフォームの新しいタブでリンクを開く方法

分類Dev

単一のプロパティではなく、新しいオブジェクトをAngularフォームにバインドします

分類Dev

チェックボックスがオンになっているかどうかに応じて、フォームコントロールまたはフォームグループの有効性を変更する方法を角度で示します。リアクティブフォームを使用します。

分類Dev

クラスライブラリプロジェクトのオプションとしてフレームワーク4.6.2が表示されない

分類Dev

リーフレット:オン/オフレイヤーのブートストラップトグル入力が正しく機能しない

分類Dev

Ignite Spring Data @Queryアノテーションは、オブジェクト全体ではなくフィールドのサブセットを取得するためのプロジェクションの概念をサポートしていますか?

分類Dev

メッセージをセディングしないブートストラップ4フォーム

Related 関連記事

  1. 1

    Djangoプロジェクトのjqueryスクリプトがフォームの送信を検出しない

  2. 2

    Windows 7と比較してWindows 10のパフォーマンスが低い(16ページを超えるスレッドがない場合、ページフォールト処理はスケーラブルではなく、重大なロック競合)

  3. 3

    Windows 7と比較してWindows 10のパフォーマンスが低い(16ページを超えるスレッドがない場合、ページフォールト処理はスケーラブルではなく、重大なロック競合)

  4. 4

    Windows 7と比較してWindows 10のパフォーマンスが低い(16ページを超えるスレッドがない場合、ページフォールト処理はスケーラブルではなく、重大なロック競合)

  5. 5

    Windows 7と比較してWindows 10のパフォーマンスが低い(16ページを超えるスレッドがない場合、ページフォールト処理はスケーラブルではなく、重大なロック競合)

  6. 6

    プロジェクト内のEveyユーザーフォームのStartUpPositionを変更してくださいエラー:オブジェクトはプロパティをサポートしていません

  7. 7

    テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

  8. 8

    Twilioの「プログラム可能なビデオ」JWTアクセストークンを正しく処理する方法は?(アンドロイド)

  9. 9

    クロスプラットフォームのオープンソースUIに依存しないC#クラスライブラリに選択するVisual Studio 2017プロジェクトタイプとその理由は何ですか?

  10. 10

    些細なmacOSアセンブリ64ビットプログラムのスタックアライメントが正しくない

  11. 11

    アウトバーンサブスクリプションからのメッセージを非同期で非ブロッキングで処理します

  12. 12

    Djangoモデルフォームのsave()メソッドがプロファイルオブジェクトを作成しない

  13. 13

    フラグメントシェーダーの「不正なプリプロセッサディレクティブ」?

  14. 14

    ブートストラップ4フィールドがフォームグループインラインで正しく整列しない

  15. 15

    Rustがデフォルトのジェネリックパラメータタイプを使用しない理由

  16. 16

    APIプラットフォーム-シリアル化グループが正しく機能しない

  17. 17

    Xamarin Mac、C#を使用したクロスブラウザ、クロスプラットフォームのネイティブメッセージング

  18. 18

    MirthのプリプロセッサフェーズでJavaオブジェクトをXMLにマーシャリングしますか?

  19. 19

    MirthのプリプロセッサフェーズでJavaオブジェクトをXMLにマーシャリングしますか?

  20. 20

    オブジェクトとウィンドウフォームの衝突検出のロジックが正しく機能していません。

  21. 21

    フォームデータのオブジェクトが正しく処理されていません

  22. 22

    ドメインオブジェクトを使用しない一般的なJSONメッセージの処理

  23. 23

    メッセンジャー ボット プラットフォームの新しいタブでリンクを開く方法

  24. 24

    単一のプロパティではなく、新しいオブジェクトをAngularフォームにバインドします

  25. 25

    チェックボックスがオンになっているかどうかに応じて、フォームコントロールまたはフォームグループの有効性を変更する方法を角度で示します。リアクティブフォームを使用します。

  26. 26

    クラスライブラリプロジェクトのオプションとしてフレームワーク4.6.2が表示されない

  27. 27

    リーフレット:オン/オフレイヤーのブートストラップトグル入力が正しく機能しない

  28. 28

    Ignite Spring Data @Queryアノテーションは、オブジェクト全体ではなくフィールドのサブセットを取得するためのプロジェクションの概念をサポートしていますか?

  29. 29

    メッセージをセディングしないブートストラップ4フォーム

ホットタグ

アーカイブ