問題タブ [wicket-1.5]
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.
java - jar リソースを派生プロジェクトの META-INF\resources にロードするにはどうすればよいですか?
Web アプリケーションで使用する共有コンポーネントを含むコア Web-Base.jar ファイルがあります。
私はWicket1.5を使用しています。問題を解決しようとしているときに、javadocをブラウズしていたところ、 MetaInfStaticResourceReferenceを見つけました。これにより、アプリケーションの効率とシンプルさが向上すると思います。
Web-Base を依存関係としてリストする Web アプリケーションが、最終的な .war ファイルの META-INF/resources/* に必要なリソースを追加するように、Web-Base をセットアップするにはどうすればよいですか?
注:私は使用しています
- ウィケット 1.5.5
- メイヴン
- Tomcat 6 (Tomcat 7 へのアップグレードを検討し始めたばかりです。)
internet-explorer - IE は常に同じ jsessionid を送信します (Java Wicket を使用)
ローカル環境でホストしているアプリケーションがあり、IE でのみ発生する非常に奇妙な問題が発生しています。私がテストした他のブラウザー (Chrome と Firefox) では、問題が再現されないようです。
私は Wicket 1.5.0 スナップショットを使用しています。
アプリケーションには、最初のリクエストを検証し、検証時にさらにアクションを実行するディスパッチ ページがあります。その中に私は持っています:
また、キャンバス ページで MyCustomSession.get() を呼び出すと、リクエストごとにまったく新しいセッションが返されます。これは、以前にセッションに入れたすべてのデータがなくなったため、問題を引き起こします。
次に、問題を追跡したところ、IEは常にリクエストヘッダーでまったく同じjsessionidを送信しているように見えます.8302844E8BB8FD6D1A617C0E6A2C58C3です。
setResponsePage(Canvas.class, pageParams) の応答ヘッダーで、ステータス コード 302 を使用すると、次のような応答ヘッダーが表示されます。
それにもかかわらず、IE からのすべての次のリクエストにはそのヘッダー フィールドがあります (以前と同じセッション ID):
これは本当に気になるので、これを解決するのを手伝ってください。ありがとう!
jquery - リストのajax更新後にjqueryスタイリングが更新されない
ウィケットを使ってリストを更新しています。リストが更新されます (ajax リクエストが行われ、応答が送信され、リストが更新されました)。これまでのところ、すべて問題ありません。
リストの更新後、javascript/jquery メソッド $('ul').listview('refresh') を呼び出して、必要なすべての jquery スタイリングを (再) 追加します。しかし、これは起こりません。(更新された) リストはスタイルなしで表示されます。
私が見逃しているものはありますか?
HTML部分:
Java 部分 (リストの初期化):
最後に、リストの更新 (AjaxButton の onSubmit メソッド内):
httpresponse - Wicketリンクを介してHttpServletResponseを介してBIRTファイルを送信すると、IllegalStateExceptionが発生します
BIRTによって生成されたレポートファイルを提供するユーティリティを呼び出すWicketLink内のどこかで、IllegalStateExceptionが発生しています。
Wicketページから:
ReportUtility.javaから:
重要な場合、createReportFileNameメソッドは、今日の日付と適切なファイル拡張子をレポートデザインファイルのベース名に追加します。つまり、「myFileName.rptdesign」は「myFileName_04_24_2012.pdf」になります。
statckトレースは次のとおりです。
これは操作に影響を与えないことを述べることが重要です。ユーザーがクリックすると、開く/保存/キャンセルが表示され、ファイルが表示され、非常にきれいに見えます。ただし、ワード後、ユーザーが次に何をしようとしても、StalePageExceptionを使用してエラーページに送信します。その後、すべてが再び正常に戻ります。
これにはHttpServletResponseが関係しているのではないか、あるいはWicketから取得する方法が関係しているのではないかと思います。ただし、ヘッダー付きの応答にファイルを追加するコードのその部分は、BIRTのチュートリアルからほぼ正確にコピーされます。(たぶん、BIRTとWicketはお互いが好きではありません。)
私自身のコードはどれもスタックトレースに表示されないことに注意してください。また、onClick、serveFile、さらにはWicketアプリケーションなど、いくつかの場所でIllegalStateExceptionを「キャッチ」しようとしましたが、すべて成功しませんでした。もちろん、捕まえられたとしても、そもそも引き起こしたことがない方がいいと思います。
java - Wicket アプリで言語と形式のロケールを分離しますか?
私たちの Wicket アプリでは、ユーザーごとに個別の UI 言語と数字/日付形式のロケール (例: 英語の UI、数字と日付形式: ドイツ語) が必要です。
セッション ロケールを Locale.GERMAN に設定すると、ドイツ語の数字と日付の形式とドイツ語のリソース (MyForm_de.properties など) の両方が取得されます。
セッション ロケールを数字と日付のロケールに設定し、カスタム ComponentStringResourceLoader を使用して文字列をロードすることで、この問題を回避しました (return super.loadStringResource(clazz, key, language != null ? new Locale(language) : locale, style, Variation) )))。ただし、別のユーザーとしてログオンすると、言語が混在し始めるため、文字列がキャッシュされているようです。
キャッシングを制御する方法を知っている人はいますか (それが問題の原因であると仮定します)。注: キャッシュを防止したくありません (おそらくパフォーマンスが低下するため)。カスタムリソースローダーで正しく動作するように、キャッシング動作をオーバーライドしたいと思います。
または、この問題を解決するためのより良いアプローチがありますか?
カスタム StringResourceLoader に使用したコードは次のとおりです。
セッション ロケールを設定するコードを次に示します (数値と日付の書式設定に使用)。
java - ユーザーがページを改札に残したかどうかをどのように知ることができますか?
ユーザーがページを離れて変更を保存していないことを確認し、改札のモーダルを表示する方法を探しています(推奨されますが、確認ボックスである可能性があります)。
追加情報:このソリューションはコードへの影響を最小限に抑える必要があります。これは、動作するページが約30ページあるためです。実際、すべてのWebページはLayoutPageと呼ばれるものから拡張されています。これは次のようなものです。
この質問のように純粋なJavaScriptソリューションを試しましたが、アプリケーションはAJAXリクエストを介して大量のデータを送信するため、データがサーバーに送信されたかどうかを知るための適切な方法を判断できませんでした
ウィケットのソースコードを調べ始めましたForm.class
。isSubmitted()
;と呼ばれる素晴らしいメソッドがあります。ユーザーがページを終了しようとしているかどうかを改札から知ることができれば、それを使用できます。
システムの各ページの検証を書きたくありません。
java - 素敵なURL:Wicket 1.5 mountPage
私はWicket1.5.3を使用しており、拡張WebApplicationクラスで、次のようなHomePage.java
きれいなURLのホームページを登録しています。
結果はURLです:http:// localhost:8080 / MyApplication / app / home?1
「?1」はどこから来たのですか?どうすれば削除できますか?
URLをhttp:// localhost:8080 / MyApplication / app / homeにしたい場合は、どうすればよいですか?
前もって感謝します。
java - 桟橋の改札: ID でページを保存できません
Apache Wicket アプリを Jetty サーバーにデプロイしましたが、Wicket ページを開くたびに、jetty ログに次のエラーが表示されます。
何がうまくいかなかったのですか?UNIX 権限が正しく設定されている。私も777で試しましたが、成功しませんでした:(
wicket - Wicket 1.5 で応答をリセットする方法
wicket 1.4 では webResponse.reset() がバッファを消去します。しかし、ウィケット 1.5 では、ある種のゴミが残っています。
応答:
そして、私の有効なjsonが続きます。