0

私はウィケット6.9を使用しています。リンク列が次のように作成されるテーブルがあります:

               @Override
                public void onClick() {
                    PageParameters pageParameters = new PageParameters();
                    IEntity iEntity = (IEntity) getDefaultModelObject();
                    pageParameters.set(HomePage.NAVIGATE_TO, navigateTo);
                    String routingPropertyToPass = "";
                    String idToPass = String.valueOf(BeanUtils.getProperty(iEntity, idPropertyToPass));
                    log.info(routingProperty);
                    if (!ColumnType.LINKABLE_WITH_FILTER.equals(columnDisplay.getColumnType()))
                        routingPropertyToPass = String.valueOf(BeanUtils.getProperty(iEntity, routingProperty));
                    if (filterBy != null) {
                        log.info("passing to the next page idPropertyToPass = {} and idToPass {}", iconCssOrNextPageReflectionProperty,
                                idToPass);
                        pageParameters.add("filterBy", iconCssOrNextPageReflectionProperty + "," + idToPass);
                    } else {
                        pageParameters.set(HomePage.ENTITY_ID, idToPass);
                        pageParameters.set(HomePage.ROUTING_PROPERTY, routingPropertyToPass);
                    }
                    pageParameters.set(HomePage.CLASS_NAME, clazz.getSimpleName());

                    HomePage homePage = new HomePage(pageParameters);
                    setResponsePage(homePage);

                }

リンクが別のタブで開かれると、2番目と3番目のタブでもすべて問題ありません。しかし、1-3で送信してグリッドに戻り、そこから別のリンクをもう一度クリックすると、ページが期限切れになります

理由について何か考えはありますか?

4

1 に答える 1

1

リンクの onClick() メソッドでこれらすべてを行う代わりに、pageParameters オブジェクトを 1 ブロック内で計算し、次のように BookmarkablePageLink を使用します。

add(new BookmarkablePageLink("link", HomePage.class, pageParameters);

ページの期限切れメッセージが表示される理由は、使用しているリンクが、ユーザーのページ バージョンに関連してブックマークできない URL をレンダリングし、おそらく他のタブで新しいページ バージョンを開くと、リンクが有効であった古いバージョンが取得されるためです。破棄されます。wicket が Application オブジェクトに保存するページ バージョンの量を微調整できますが、このようにページ パラメータ ベースの優れた機能がすべて実行されている場合は、リンクを修正してブックマーク可能な (ステートレスな) URL をレンダリングすることをお勧めします。

于 2013-09-04T14:36:46.537 に答える