2011-02-08 6 views
1

私はJSF2プロジェクトをやっています。JSFに関するさまざまな質問

1。いくつかのチェックボックスがあるフォームがあります。次のコード

<ui:repeat> 
<h:selectManyCheckbox value="#{wagent.selectedPra}">... 
</h:selectManyCheckbox> 
</ui:repeat> 

を見て私は、UI内selectManyCheckboxを使用します。繰り返し、私が欲しいものと同じ値に異なるselectManyCheckbox点の値。 しかし、フォームが送信されているとき、私はすべての選択したボックスを持っていませんでした。 どうすればいいですか?

2。私はいくつかの入力があるフォームを持っています。私の行動では、いくつかのpdfファイルをマージし、同じページにとどまり、ポップアップがマージされたファイルをダウンロードするように見えるように見せます。

3。リクエストスコープのすべてのマネージドBeanはリクエストごとに作成されますか、それともxhtmlページで使用された場合のみですか?

4。私はログアウトするコマンドリンクを持っています。私の動作では、session.invalidate()を使用して "login"を返します。だから私はログインに戻りますが、ログインを検証する際には、セッション管理Beanが作成されていないようです。エラーはyourSessionBeanがnullのようなものです。どうしましたか ?

+0

私は、この種のマルチ質問には何の問題もありませんが、将来はそれぞれについて別々の質問をする必要があります。それは、Stackoverflowがあなたから期待しているものです。これにより、よりきめ細かな検索とより良い一致が可能になります。また、個別に処理/クローズされた質問が可能になります(重複している場合など)。 – BalusC

+0

[OK]を、私は次回になります –

答えて

2

1:私はui:repeat内でselectManyCheckboxを使用しています。異なるselectManyCheckboxの値が同じ値を指すようにします。しかし、フォームが提出されたとき、私はすべての選択されたボックスを持っていなかった。どのように私はそれを行うことができますか?

代わりに、別の値を指すようにしてください。この例では、Beanの値はループの終わりまで毎回オーバーライドされます。例として、豆(またはあなたの質問で何でもPra手段)でList<List<Pra>>を使用します。

<ui:repeat value="#{wagent.allSelectedPra}" var="selectedPra"> 
    <h:selectManyCheckbox value="#{selectedPra}"> 
     ... 
    </h:selectManyCheckbox> 
</ui:repeat> 

2:私はいくつかの入力を持つフォームを持っています。私の行動では、いくつかのpdfファイルをマージし、同じページにとどまり、ポップアップがマージされたファイルをダウンロードするように見えるように見せます。

少なくとも二つのことが行われる必要があります:

facesContext.getExternalContext().addResponseHeader("Content-Disposition", "attachment;filename=name.pdf"); // Force "Save As" dialogue. 
facesContext.responseComplete(); // Prevent JSF from taking response in hands. 

3:リクエスト・スコープを持つすべての管理対象Beanは要求ごとまたはちょうど私がそれらを使用した場合に作成されていますxhtmlのページ?

これらはすべてのHTTP要求に対して作成されます。あなたが記述したスコープはビュースコープにのみ適用されます(私があなたのことを正しく理解している場合)。

4:ログアウトするコマンドリンクがあります。私の動作では、session.invalidate()を使用して "login"を返します。だから私はログインに戻りますが、ログインを検証する際には、セッション管理Beanが作成されていないようです。エラーはyourSessionBeanがnullのようなものです。どうしましたか ?

セッションスコープの管理対象Beanに間違った方法でアクセスしている可能性があります。@ManagedPropertyとして注入するか、Application#evaluateExpressionGet()で取得する必要があります。

+0

1.どのように異なる値を指すようにする。私は何回ループを作りましたか分かりません。 4.私は 'h:commandButton action ="#{mySessionBean.login} "'のようなセッションBeanにアクセスし、エラーを投げます。セッションBeanはログアウトすると再作成されないと思います。 –

+0

1については、私は答えを更新しました。 4では、正確な例外/エラーメッセージを知る必要があります。これは、 'yourSessionBean'が実際には別のbeanのプロパティであるように聞こえます。 – BalusC

+0

今日は投稿できません、明日は正確なエラーを投稿します。あなたは本当に有益です、ありがとうございます。 –

関連する問題