問題タブ [icefaces]
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 - IceFaces が私の get 要求を食べているように見えるのはなぜですか?
いくつかの Request スコープ Bean を使用する IceFaces ページがあります。最初の GET リクエストを行うとき、faces コンテキストを介して外部コンテキストを取得し、GET パラメータを取得して、それを使用して@PostConstruct
メソッドで Bean を初期化します。
ただし、別の get パラメータで同じページにリンクしようとすると、リクエストが食い込んでポストバックとして扱われているようです。リクエスト スコープ Bean はいずれもスコープ外に出ず (ポスト バックでスコープ外に出ないのとまったく同じ)、新しい値は無視されます。
リンクを、新しいリクエスト スコープ Bean を必要とする新しいリクエストとして扱うにはどうすればよいですか?
jsf - 国際化とローカリゼーションの問題
私のアプリケーションは国際化とローカリゼーションをサポートしています。各ユーザーは自分の好みの言語を選択でき、アプリケーションはそれを完全に反映します。問題は、最初のユーザーが英語を選択し、2番目のユーザーがフランス語を選択した場合、最初のユーザーのリソースバンドルは、ページを更新した後にフランス語のリソースから読み取ります。
次のコードを使用して、2つの言語を切り替えています。
私のfaces_config.xmlには次のものがあります。
<locale-config>
<default-locale>en</default-locale>
<supported-locale>fr</supported-locale>
</locale-config>
アプリケーションは言語の変更に非常によく反応しますが、FacesContextからロケールを設定すると、すべてのユーザーのロケールが反映されると思います。
これについて私を助けてください....
java - サーバーが開始するレンダリング: EJB -> FacesContext?
私はすでに Icefaces フォーラムでこの質問をしましたが、これはより一般的な問題であることに気付きました。
MDB でメッセージを受け取ったときに、JSF ページの一部を更新したいと考えています。
問題は、EJB コンテナーから FacesContext を取得するにはどうすればよいかということです。
メッセージ処理関数で FacesContext.getCurrentInstance() は null を返します。
また、JSF マネージド Bean を MDB にしようとしましたが、できませんでした (同じクラスに両方を含めることはできないようです)。
私はJSFの世界の初心者なので、今はちょっと行き詰まっています。それを機能させる方法はありますか?
(Glassfish v3 + Netbeans 6.8、JSF2 + Icefaces 2.0 alpha2)
java - facesMessageとice:Messages
簡単な質問。facesMessageを特定のice:Messagesタグに関連付けることは可能ですか?
つまり、私は作成します
そして私のページには
したがって、メッセージid = "errorMessageOne"の場合は「エラーメッセージ1」を開始し、メッセージid=errorMessageTwoの場合は「エラーメッセージ2」を開始します。
これに関するヒントはありますか?
助けてくれてありがとう!
java - jsf / icefaces のリクエスト属性の動作がおかしい (survive request end)
リスナーメソッドに次のコードがあります。
ボタンがクリックされると、次のコードが実行されます
現在のリクエストの処理中にリスナーが実行されなかった場合、「時間」がnullであることを除いて可能ですが、「時間」オブジェクトはリクエスト処理後も存続しているようです。ですから、過去に「時間」が設定されると、そこにとどまることがあります... 誰かこれを説明できますか? ありがとう。
java - JSF/Icefaces RequestDispatcher
レガシー JSP ファイルを読み取るために、JSF でコンポーネントを作成しようとしています。これを行うために RequestDispatcher.include を使用しています...唯一の問題は、externalContext.getRequest().getRequestDispatcher(...) が Icefaces で UnsupportedOperationException を返すことです。
これを回避する方法はありますか?
ありがとう。
jsf - カスタムレンダラーを JSF に登録するには?
データベースには、2 つの値の状態を表す数値があります。もちろん、これはブール値に完全に一致しますが、オラクルにはそのようなデータ型はありません。データベースの NUMBER(1,0) 型は、Java の java.lang.Short 型に一致します (Java.math.BigDecimal に一致するブール値を表すために NUMBER(*,0) を使用することもありました)。
なんとなく明らかなので、ビューで ice:selectBooleanCheckbox を値表現と UIComponent としてユーザーに提供したいと思います。(私はJSF実装としてIceFacesを使用しています)
JSF を指定した一部の人々は、常に ice:selectBooleanCheckbox または JSF の h:selectBooleanCheckbox の値をモデルのブール値に一致させることが明らかであると考えているため、コンポーネントのレンダラーはコンバーターを指定しても、コンバーターを呼び出しません。 java.net で議論されている問題
したがって、私は次のことを試しました:
UIComponent で指定するコンバーターを作成しました。
コンバーターはレンダリング フェーズでは正常に動作しますが (getAsString メソッドは正しく呼び出されます)、getAsObject メソッド (現時点では正しくないことは無視してください。とにかく呼び出されないため、呼び出されれば修正されます!)ここでわかるように、UIComponent のレンダラーではコンバーターが予見されないため、呼び出されませんでした (com.icesoft.faces.renderkit.dom_html_basic.CheckboxRenderer から抜粋):
そのため、UpdateModelValues フェーズではブール値を数値に適用しようとするため、IllegalArgumentException が発生します (BigDecimal/Short の混乱は無視してください... いずれにしても単なる数値型です!)。
そこで、次のような新しいレンダラーでレンダラーを上書きしようとしました。
そして、faces-config.xml に次のように登録しました。
これは正しいはずだと思いますが、オーバーライドされたメソッド「getConvertedValue」は決して呼び出されず、getAsObject() メソッドも呼び出されないため、カスタム レンダラーの登録を間違えたと思いますが、それ以上のドキュメントが見つからないか、これを適切に行う方法、特に正しいコンポーネント ファミリ (icefaces.taglib.xml で使用するものを調べました) と正しいレンダラー タイプを見つける方法を示します。
このため、完全なモデルを編集したくありません。ヒント、これをどのように解決できますか?
java - IceFaces のマッピング方法java.util.Calendar フィールドのコンポーネント?
ではなく、コンポーネントをフィールドに<ice:selectInputDate>
マップする方法を知っている人はいますか?java.util.Calendar
java.util.Date
私はIceFacesバージョン 1.8.2からコンポーネントを使用しています<ice:selectInputDate>
。このコンポーネントは、プロパティにバインドする必要がありますjava.util.Date
。たとえばvalue="#{bean.myDate}"
、myDate
フィールドのタイプは である必要がありますjava.util.Date
。しかし、日付フィールドがタイプである必要がありますjava.util.Calendar
。
私の試用版: 標準コンバーターまたはカスタム コンバーターを使用しようとしました。
標準的なもの:
<f:convertDateTime pattern="dd/MM/yyyy" />
GUI で正しい値をフォーマットしますがbean.myDate
、タイプのプロパティに設定すると、Calendar
次のエラー メッセージが表示されます。[5/3/10 12:09:18:398 EEST] 00000021 ライフサイクル I 警告: FacesMessage はキューに入れられましたが、表示されていない可能性があります。sourceId=j_id12:j_id189:myDate[重大度=(エラー 2)、概要=(/WEB-INF/xhtml............file.xhtml @507,51 値="#{bean. myDate}": クラス 'bean' のプロパティ 'myDate' を値 '5/11/10 3:00 AM' に設定できません。)、detail=(/WEB-INF/xhtml........ file.xhtml @507,51 value="#{bean.myDate}": クラス '...bean...' のプロパティ 'myDate' を値 '5/11/10 3:00 AM' に設定できません.)]
カスタム 1:
<f:converter converterId="c2d"/>
- getAsObject -
java.util.Calendar
送信された からオブジェクトを返しますString
。 - getAsString - を受け取り、フォーマットされた
Object
ものを返します。String
- getAsObject -
注: このメソッドはハッキングされたので、メソッドjava.util.Calendar
を補完するものと期待するのではなくgetAsObject
. 代わりに、ハッキングされたメソッドは、 ( によって) パラメータとして提供される をgetAsString
期待し、フォーマットされたを返します。java.util.Date
ice:selectInputDate
String
しかし、それでもエラー メッセージが表示されます。
[5/3/10 12:55:34:299 EEST] 0000001f D2DFaceletVie E com.icesoft.faces.facelets.D2DFaceletViewHandler renderResponse renderResponse の問題: java.util.GregorianCalendar は java.util.Date java.lang.ClassCastException と互換性がありません: java.util.GregorianCalendar は、com.icesoft.faces.component.selectinputdate.SelectInputDate.getTextToRender(SelectInputDate.java:252) で java.util.Date と互換性がありません
どんなヒントもとても役に立ちます!ありがとう、ミハエラ
jsf - 変更されていないコンポーネントのバリデーターが呼び出されるのはなぜですか?
IceFacesフォームといくつかの入力フィールドがあります。
私がこれを持っているとしましょう:
この:
1つの値を変更すると、それぞれのバリデーターが呼び出されます。しかし、他のバリデーターも呼び出されますが、これは問題ありません。ユーザーは、注意を向けようとしていたフィールドに値を挿入するという苛立たしいメッセージを受け取るからです。これは、「今すぐ急いで!」というスティックでユーザーを突くようなものです。悪い!
属性「partialSubmit」がこの動作を制御していると思ったので、1つのDOMパーツのみが送信され、ユーザーの操作の影響を受けますが、両方のコンポーネントを部分的に送信するように宣言しても、何も変わりません。それでも、1つのコンポーネント値が変更されると、両方のバリデーターが呼び出されます。
完全に送信されるまでフォーム全体が検証されないようにするにはどうすればよいですか?
spring - リクエスト スコープの Bean 間でパラメータを渡すにはどうすればよいですか
これは、以前から私を悩ませてきた質問です。私のアプリケーションでは、UI フレームワークに ICEFaces を使用し、依存性注入に Spring 2.5 を使用しています。さらに、Spring は実際には、ICEFaces フレームワークではなく、すべてのバッキング Bean を維持するため、faces-config は基本的に空です。
ナビゲーションは、ナビゲーション ルールによって実際に処理されることさえありません。window.open を使用して、新しいウィンドウへの手動リダイレクトを実行します。
すべての Bean は、リクエスト スコープとして appContext ファイルで定義されています。BackingBeanABC によってサポートされている Page ABC があります。そのバッキング Bean 内には、次のようなパラメーターがあります。
次に、BackingBeanXYZ によってバッキングされたページ XYZ を取得します。ページ ABC からページ XYZ にリダイレクトするときに、'order' プロパティを ABC から XYZ に転送したいと考えています。問題は、すべてがリクエストスコープであり、リダイレクトを実行しているため、「説明」の値が失われていることです。
リダイレクト中にリクエストスコープ内の Bean 間でオブジェクトを渡す簡単な方法が必要です。誰でもこの問題を支援できますか?