問題タブ [wicket-6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ajax - wicket 6.0.0-beta2 AjaxButton でフォームを送信するときに DataTable の内容を更新する
フォームの内容に応じて DataTable の内容を変更したい (検索バーの機能と考えてください)。以前は wicket 1.5.x でそれを行っていましたが、wicket 6.0.0-beta2 では機能しないようです。AjaxButtonのonSubmitメソッドには入っていないようです。他のすべては正常に機能し、すべてのコンポーネントが正しくレンダリングされ、ページの読み込み時に dataTable に正しいデータが入力されますが、ボタンをクリックしても何も起こりません。
どんな助けでも大歓迎です。私のコードは次のようになります。
データテーブル:
AjaxButton を使用したフォームは次のとおりです。
java - Wicket 6.x で CallBackScript を適切に使用する方法
Wicket 1.x では、AjaxEventBehavior を使用して、マウス座標を提供する CallBackScript を配置しました。これは私がやったことです: (getEventX() と getEventY() は JavaScript 関数です)
それは非常にうまくいきました。しかし、Wicket 6.x でこれを行う方法がわかりません。
Ajax リンクの動作方法が変更されたことは理解しています。そこで、以前と同じ方法で getCallBackUrl を使用してみました。しかし、それはうまくいきませんでした。
生成された HTML を見ると、ajax リンクが次のようになっていることがわかります。
良さそうに見えますが、うまくいきません。
ウィケット6以降、何か間違ったことをしていると確信していますが、正しい方法で行う方法がわかりません。
どんな提案でも大歓迎です。
乾杯ラインハルト
java - Ajax がウィケットで機能しない
wicket 6.5 でいくつかの AJAX DropDown をテストしたかった (wicket 6.6 を試してみたが、同じ問題があった)。
クイックスタートウィケットページを使用してウィケットテストプロジェクトを作成しました - http://wicket.apache.org/start/quickstart.html
mvn archetype:generate -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=6.6.0 -DgroupId=net.betlista -DartifactId=tests.wicket-6.6 -DarchetypeRepository= https://repository.apache .org/ -DinteractiveMode=false
生成されたクラスに変更HomaPage
しました。LoadableDropDownTestPage
getHomePage()
WicketApplication
LoadableDropDownTestPage の Java コードは次のとおりです。
ページの HTML は次のとおりです。
私の最初の問題は、自分のページに AJAX デバッグ リンクが表示されないことです。でも、あるうちに見るべきだと思いますOnChangeAjaxBehavior
。
次の問題は、country DropDown の値を変更しても何も起こらず、何が間違っているのかわからないことです。
私のコードでは、AjaxButton も試してみましたが、それもうまくいきませんでした。
編集:
ログの一部 (DEV モードで実行中)
forms - Wicket フォーム「ServletRequest にマルチパート コンテンツが含まれていません」
ファイルアップロードボックスがあるウィケットフォームがあります。ユーザーがドキュメントを添付する必要がないため、このファイル アップロード ボックスが非表示になることがあります。 フォーム objectを呼び出し ましたが、まだ (まれにしか) このエラーが発生しません。setMultiPart(true)
java.lang.IllegalStateException: ServletRequest にマルチパート コンテンツが含まれていません。考えられる解決策の 1 つは、明示的に Form.setMultipart(true) を呼び出すことです。Wicket はマルチパート フォームを自動検出するために最善を尽くしますが、それができない特定の状況があります。
役立つ事実:
- このフォームは 1 日あたり約 10,000 回送信され、このエラーは 1 日あたり 5 ~ 10 回発生します。
- エラーが発生したユーザーがフォームに同じデータを再度入力すると、正常に機能します。
- エラーをローカルで複製することはまったくできませんでした。
- このエラーを受け取った私が話した少数のユーザーは、ファイルをアップロードしていなかったと言っています。
フォーム コードの要約版を次に示します。
フォームに追加されたカスタム Validator があり、いくつかのフォーム フィールドへの AJAX コールバックがいくつかありますが、フォーム自体は AJAXy ではありません。ブラウザで生成されたソースを見ると、次のようなフォーム宣言が表示されます。
フォームを送信するボタンは、Java 側では標準のウィケットボタンinput type="submit"
であり、HTML 側では です。ただし、ブラウザーのソース ビューではjQuery18307179054977115189="23"
、入力に属性が表示されます。
何か案は?私はこのバグを再現するためだけにあらゆる方法を試しましたが、あなたが与えることができるどんな助けも素晴らしいとは言えません. 私は Wicket 6.6.0 を使用しています。
ajax - AjaxLink updateAjaxAttributes - AjaxCallListener getPrecondition
Wicket 1.5 から 6.6 への移行中にスタックしました。
以前のAjaxLinkでは、 getAjaxCallDecorator()メソッドをオーバーライドし、スクリプトをpreDecorateScript(CharSequence script)でラップすることができました。
現在推奨されている方法は、getPrecondition(Component component) メソッドで AjaxCallListener を使用することです。しかし、 Component コンポーネントパラメータを使用してソース スクリプトをラップするにはどうすればよいでしょうか?
internet-explorer-6 - コンボボックスと IE6 による Wicket オートコンプリート
AutoCompleteTextField と 2 つのコンボ ボックス (ウィケットのドロップダウン) があるフォームがあります。
オートコンプリートのドロップダウンが表示されると、IE6 でコンボ ボックスが非表示になります。
私のテストページのコードは次のとおりです。
テストページのマークアップは
Wicket は IE6 をサポートしていないため、回避策を探しています。
java - Wicket - LoginPage を介して PageParameters を渡す
私がやろうとしているのは、オブジェクトのIDである 1 つのパラメーターを取得する単純なページです。
このページは、不正なアクセスから保護する必要があります。@AuthorizeInstantiation("user")アノテーションを追加し、 AuthenticatedWebApplicationを拡張するMainApplicationのgetSignInPageClass()を含む標準の Wicket セキュリティ サポートを管理しました。
問題は、元のパラメーターで承認した後、 IndexPageに戻る必要がある場合です。私はいくつかの解決策を得ましたが、それをよりエレガントでより一般的な (普遍的な) ものにする必要があります。
- Application クラスのrestartResponseAtSignInPage()メソッドをオーバーライドする
RequestCycleからパラメーターを取得します。
/li>new RestartResponseAtInterceptPageException(getSignInPageClass(), newParameters);をスローしてそれらを渡します。
URLのパラメーターの正確なインデックスが何であるかを確認する必要があるため、これは良い解決策ではないことはわかっています(エンコーダーはnamedParametersではなくindexedParametersのみを返します-または、間違っていますか?)。
たぶん、以前にその問題に遭遇した人がいますか?