問題タブ [mojarra]

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.

0 投票する
1 に答える
2936 参照

jsf - JSF 2.0 Mojarra h:headタグ

h:headタグを使用すると問題が発生します。私はJSF2.0Mojarraの実装を使用しています。ここここで提供されているものと同じような例を試してみます。h:headタグを使用しようとすると、常に同じエラーが発生します。私が頭を使うなら、すべてが大丈夫です。

h:body、h:formなどの他のタグを使用しても問題ありません。

このタグについても同様の問題がありますが、まったく同じ問題ではないため、解決策は機能しませんでした。

0 投票する
1 に答える
1452 参照

jsf - JSTL /コアタグを使用すると、ViewScopedBeanが台無しになります

Mojarra2.1.0でバグが発生したと思います。多分私は何かを逃したが、それを見ることができれば気にしない。

ブラウザがサーバーに対して多くのAJAXを実行している間、状態を保存するために多くの@ViewScopedBeanに依存しています。特定のタグを使用すると、@ViewScopedBeanが本来あるべきではないときに再インスタンス化され始めます。これが私のテストケースバッキングBeanです。

そして、これを使用するJSFFaceletsページは次のとおりです。

だからここに何が悪いのかがあります。[Do Me]コマンドボタンをクリックすると、@ RequestScoped Beanであるかのように、バッキングBeanの新しいインスタンスが毎回作成されます。これは、コンストラクターのlog()呼び出しで確認できます。

Beanを@SessionScopedに変更した場合、これは発生しません。ボタンが何度クリックされても、Beanのインスタンスを1つ取得します。

ただし、@ ViewScopedのままにして、c:foreach要素とそのコンテンツを削除すると、クリックするたびにBeanが再インスタンス化されなくなります。つまり、期待どおりに機能するようになりました。

これはクロサギのバグですか、それとも私はここで何か間違ったことをしていますか?

0 投票する
1 に答える
1147 参照

jsf-2 - ui:repeat var 属性が期待どおりに機能しない

@ViewScopedの問題により、faceletで c:foreach の代わりに ui:repeat を使用する必要があります。しかし、私はこの問題に遭遇し、誰かが回避策を提案できるかどうか疑問に思っています.

最初の問題は、 #{led} 参照は id 属性が評価されないことです。生成されたすべての id 属性は、単純に値「mailbox-」です。document.getElementById() で特定の要素インスタンスを見つける必要があるため、生成された id 属性が必要です。

回避策が見当たらないもう 1 つの問題は、ui:repeat 要素を h:panelGrid 要素内にラップすると、各メンバーに対して 1 つのセルではなく、1 つのセルを含むテーブルになってしまうことです。 idCode コレクション。

c:foreach を使用する場合、これらの問題はどちらも存在しませんが、そのタグを使用すると他の問題が発生します。助言がありますか?

0 投票する
1 に答える
8669 参照

jsf-2 - Mojarra JSF 2.1 の障害のある INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL の回避策

JSF2で空の文字列をnullに変換することに関する投稿がたくさんあることを私は知っています。通常の処方箋は、web.xml に以下を追加することです。

これはまったく機能していないようです。次に、カスタム文字列コンバーターを作成して、それが機能するかどうかをテストしました。inputText へのコンバーターとして明示的に追加しました (それ以外の場合、空白の場合は起動しません)。

INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL が true に設定されている場合、コンバーターは null を受け取り、入力テキストのセッターは引き続き "" を受け取ります。

INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL が false に設定されている (またはコメントアウトされている) 場合、コンバーターは "" を受け取り、入力テキストのセッターは "" を受け取ります (コンバーターが null を返した後でも)。

getAsObject で送信されたコンポーネントの値を明示的に設定しようとしましたが (無駄に)、イベントを実行しました。

私は JBoss6 (実際には 6.1 のスナップショット) と JSF 2.1.1 を使用しています。

0 投票する
3 に答える
17068 参照

java - JSF 検証エラー: 値が無効です

これはよくあることのようですが、私はそれで迷っています。Assessment.jsf の [追加] ボタンをクリックすると発生します。とにかく、関連するセクションだと思うものを添付しました。

FWIW、デバッグ時に AssessmentType.equals() がトリガーされません。

前もって感謝します。

評価.xhtml:

評価.jsf:

AssessmentType.java:

AssessmentFieldConverter.java

AssessmentBean.java

編集:

デバッグ中にこれに気づきましたが、疑わしい可能性がありますか?:

0 投票する
2 に答える
3970 参照

jsf - JSF/Mojarra の「フラッシュ スコープ」の問題

Mojarra 2.1.1 / Glassfish 3.1 で実行されているアプリがあり、現在 150,000 行以上のコードに成長しています。このアプリは、ViewScoped マネージド Bean と page-redirect-get パターン (つまり、faces-redirect=true) で ajax を広範囲に使用します。

常に私を悩ませていることの 1 つは、ページからページへ、および Bean から Bean へのパラメーターの受け渡しが明らかに容易でないことです (すべてのページには独自のバッキング Bean があります)。

フラッシュを機能させることができませんでした。通常、次のページの preRenderView イベント リスナーでフラッシュに書き込んだデータにアクセスする必要があります。これは、特にアプリケーションの再デプロイ後は確実に機能しません。

私は CDI を読み、JSF マネージド Bean から CDI Bean に移行しようと数日を費やしましたが、うまくいきません。Seam 3 と Glassfish 3.1 の間には多くの互換性の問題があるようです。Weld を 1.1.1 にアップグレードしましたが、これは役に立ちません。私の観点からすると、現時点では機能しません。たとえば、バッキング Bean の文字列に h:inputText を入力しようとしているページがありますが、これは機能しません。本当に単純なことです。

私が抱えているCDIの問題のため、非常に単純なテストアプリケーション(g/f 3.1でも)で必要なだけ実行するseam-faces @RenderScopedを使用できませんが、複雑なメインアプリケーションでは実行できません。

私が現在使用できる唯一の信頼できるメカニズムは、セキュリティ上の悪夢である URL パラメーターです。データへのアクセスが適切に認証されるようにあらゆる努力が払われていますが、何かが欠けているという変化が常にあり、ブラウザーで ...xhtml?id=51031 などを表示すると、他の ID を試すのをためらう人もいます。クリア テキストを回避し、名前と値のペアに意味のある名前を使用しないように、難読化コンバーターを作成しましたが、これでは問題の根本に到達しません。

ここで何かが欠けているのではないかと思いました.グラスフィッシュでも、他の誰もがこの問題に対して有効な解決策を持っていますか? 心配しすぎて、URL パラメーターに固執する必要がありますか? 他の提案はありますか?

ありがとう。

0 投票する
1 に答える
2072 参照

jsf-2 - post が JSF2 フラッシュ スコープで値を設定した後、ページへの 2 番目の GET リクエストで再び表示されます (Flash スコープは有害と見なされます)。

JSF2 で新しい Flash スコープをテストしましたが、重大な問題が見つかったか、知識が不足しています。

ページを持つ:

シナリオがあります:

  • 値「foo」を入力し、[テスト] をクリックします。
  • 「Value in flash: foo」が表示されます
  • 同じアドレスで新しいページを開く
  • 「Value in flash:」が表示されます。
  • 同じアドレスで別の新しいページを開く
  • 'Value in flash: foo ' が表示されます <- IMHO これは間違っています!

再現性: Glassfish 3.1 および JBoss AS 7 で 100% テスト済み

おそらく同じ理由で別の問題:フラッシュからの JSF メッセージの削除

そう:

  • JSF2フラッシュの望ましい動作ですか?
  • これとフラッシュに関するその他の注目された問題に基づいて、参照フラッシュ実装は有害であると見なされるべきですか?
0 投票する
0 に答える
320 参照

jsf-2 - Mojarra がビュー パラメータを失う

Mojjara で post-redirect-get パターンを実装しようとしています。同じヘッダーと検索フォームを含む 2 つのページがあります。

両方のページの共通テンプレートに、これら 2 つのコードが含まれています

からフォームを送信するarticle.xhtmlと、URL はsearch.xhtmlsearch.xhtmlなります。/search.xhtml?searchString=stringSearch&mutation=cs

何か不足していますか?

編集: バッキング Bean は、ビューとフラッシュの間で何らかの組み合わせを使用します (Bean は両方のスコープに保存され、生き残ったスコープから取得されます)。デバッグから、JSF は Bean に保存される前にパラメーターを取得しているようです (誤った使用例)。

0 投票する
3 に答える
14770 参照

html - JSF 2.0 UIInputコンポーネントへのカスタム属性(HTML5)サポートの追加

placeholderコンポーネントの属性を処理するレンダラーを作成しようとしてい<h:inputText>ます。JSF 2.0を読んだ後、私はこのパスに向かいました。必要なHTML5属性を取り除き、それは正しいようです。これが私のカスタムレンダラーです

そして、このレンダラーは、facesconfigに次のように登録されます。

これは問題なく登録され、問題はありません。

私の意図は、placeholder属性を処理して挿入し、処理をsuperに委任することです。間違った場所に属性を挿入しているため、上記のコードは機能しません。実行後に挿入する必要がありますwriter.startElement('input')。ただし、startElementはスーパーのencodeBegin()メソッドのどこかで発生している必要があります。では、カスタム属性(この場合は「プレースホルダー」)を挿入してから実行フローを続行するにはどうすればよいですか?

注意:上記のコードはplaceholder属性を追加しますが、意図する入力コンポーネントには追加しません。入力の親に書き込みます(コンポーネント自体が実際にストリームに書き込まれる前に属性を書き込もうとしているため、属性を現在のコンポーネントに適用します)

0 投票する
1 に答える
3472 参照

jsf-2 - JSF 2 Mojarra および WebSphere 7+ の Primefaces

私は、WebSphere 7+ と Mojarra 2.0.4 という不浄な同盟関係に苦しんでおり、ショーストッパーのようなものに出くわしました。

このフォーラムの投稿で指定されている指示に従い、Mojarra 2.0.4 を適切に初期化しました: http://forum.primefaces.org/viewtopic.php?f=3&t=6860

基本的に、Mojarra および Primefaces jar を外部から参照する分離されたクラスローダー共有ライブラリを作成し、共有ライブラリを webapp に追加し、クラスローダーを逆にして PARENT_LAST にしました。そのすべてが機能します。

Web アプリにアクセスしようとするとhttp://server:port/context/index.xhtml、FacesServlet に正しくヒットしますが、すぐにリクエスト ディスパッチャーがindex.jsp???にリダイレクトされます。

コード、アプリ、web.xml のどこにも JSP が指定されDEFAULT-SUFFIX.xhtmlいません。私の Web ページはすべて.xhtml拡張機能であり、FacesServlet は に正しくマップされてい*.xhtmlます。

XHTML を MIME タイプとして WebSphere に追加しようとしましたが、Request Dispatcher を無効にしましたが、すべて役に立ちませんでした。これを Tomcat 6-7、JBoss 6、および Glassfish 3 で問題なく正常に実行できましたが、何らかの理由で WebSphere は JSP ファイル拡張子を要求しますか?

何かお役に立てば幸いです。