問題タブ [viewparams]
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.
forms - GETを使用してJSFフォームを送信する
同じページにフォームを送信してGETパラメーターを使用するにはどうすればよいですか?
JSFページの内容:
ページform.jsf?item1 = foo&item2 = barをリクエストすると、テキストフィールドに入力されますが、フォームの送信自体が機能していないようです。
jsf - ViewParam vs @ManagedProperty(value = "#{param.id}")
このようにビューパラメータを定義することの違いは何ですか?
そして、このようにManagedBeanでプロパティを定義します。
jsf - URLのパラメータを使用する間のパフォーマンスのベストプラクティス?p=2とマネージドBean
私はJSF2.0を使用してIcefaces
おりGlassfish
、プロジェクトでこのアプリケーションを可能な限り最適化したいと考えています。また、パラメーターを送信するための最も最適化された方法を知りたいと思います。
最初の1:/BackOffice/test.xhtml?id=7 in url
と String a=(String) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("id");
でBeanを使用し@RequestScoped
て
jsfで
または2番目:バッキングBeanを使用する@SessionScoped
jsf - なにができる、とに使用されますか?
このスニペットを一般的に、または実際の例でどのように使用できるかを明確にできる人はいますか?
jsf - さまざまなBeanのパラメータを表示する
trip.xhtml
次のコードを使用してURLからパラメーターを取得するというページがあります。
このTripBean
ように見えます(簡略化):
trip.xhtml
ページの下部に私は:を持っていh:link
ます
私が期待しているのは、このリンクをクリックしたときに取得するURLはのようなものだということです"/customer/booking.jsf?tripid=2&seats=1"
。booking.xhtml
これは、次のコードをページに配置した場合にのみ当てはまります。
私が実際に欲しいのは別のBeanを使用することですが。コードを次のように変更します。
にBookingBean
も2つのプロパティがtripId
あり、seats
これらはと同じですがTripBean
、リンクをクリックしようとすると、0に設定されているseats-parameterのみが表示されます。("/customer/booking.jsf?seats=0"
)
別のBeanを使用してそれらを格納しようとしているときに、viewparamsを他のページに渡せないように見える理由を誰かが知っていますか?そして、それを別のBeanに格納することが不可能な場合、それらの値をどのように入れることができますTripBean
かBookingBean
?
私が使用した簡単な回避策:を使用せずincludeViewParams="true"
、手動でリンクにパラメーターを追加する(以下を参照)と、問題が「修正」されます。なぜそれがうまくいかないのか疑問に思っていますがincludeViewParams
!
jsf - ビュー パラメータを URL に自動的に含める
ビューパラメータとそれらのパラメータを処理するロードメソッドを備えた単純なjsfページがあります。
にもいくつかの初期値を設定し@PostConstruct
ます。これらのパラメーター (null ではない) を含む新しい場所にユーザーをリダイレクトする方法。たとえば、ユーザーはブラウザに次のように入力します。
次の場所にリダイレクトされます。
にparam1が設定されているため@PostConstruct
です。
別の質問 - 同じビューを参照するページにリンクがあります:
ユーザーが でページに入って?param1=someValue
リンクをクリックすると、 にリダイレクトされまし?param3=otherValue
たが、 にリダイレクトしたいです?param1=someValue¶m3=otherValue
。より多くのパラメーターを追加できることはわかっていますが<h:link>
、すべての可能なパラメーターをすべて追加するのは難しいです<h:link>
PS。このトピックJSF 2 and Post/Redirect/Get?の BalusC ヒントを使用します。
jsf - 複数の値を持つ f:viewParam
<f:viewParam>
駆動型検索画面があります。単一の に対して複数の値を取るように実装しようとしています<f:viewParam>
。
正しいURLは次のようになると思います
XHTML セクションは次のとおりです。
backingBean で次の 2 つのメソッド シグネチャを試しました。
JSF 実装が値の配列を作成し、バッキング Bean に設定することを期待していました。JSF 実装は、列挙型を列挙型の配列に変換できないというエラーで失敗しました。
JSF 実装は、URL で見つかったとおりに変換された値を設定するのではないかと考えました。最初の値のみが設定されました。
はと値のstateNameConverter
間で変換します。String
enum
<f:viewParam>
JSF 2で複数の値を持つことは可能ですか?
redirect - includeViewParams を使用した JSF2 リダイレクトにより、ユーザーはテキスト フィールドに解決される EL 式を入力できます
ビュー パラメータを定義する JSF2 XHTML ページがあります。これにより、ブックマーク可能な URL を持つことができます。XHTML ページには次のパラメーターが含まれます。
同じページに、ユーザーが searchName を変更できるテキスト フィールドとボタンがあります。
最後に、nbsearchpage Bean のアクション メソッド search() が同じページに戻りますが、パラメータが含まれます。
これにより、ユーザーに適切な URL が提供されます。ユーザーが検索フィールドに「IBM」と入力すると、URL がリダイレクトされます。
それは完全にうまく機能します。しかし、ユーザーは searchName テキストフィールドに EL 式を入力できるようになり、EL 式が評価されます。たとえば、ユーザーがテキスト フィールドに「#{2+2}」と入力すると、URL は次の URL にリダイレクトされます。
これは、セキュリティ上の理由から、ユーザーが EL 式を入力できるようにするべきではないと思います。Glassfish 3.1.1 を使用しています。
この自動 EL 解決を防ぐ方法はありますか? JSF2 のビュー パラメータの概念とリダイレクトに根本的な欠陥があると思いますか? リダイレクトに耐えられないビュー スコープで同じ問題が発生したため、独自のスコープを作成する必要がありました。(フラッシュスコープを使用することもできました)。
jsf-2 - オブジェクトを渡すための JSF 2.0 ビュー パラメーター
あるページから、各ページが異なるビューにある別のページにオブジェクトを渡そうとしています。
最初のページには、入力テキストがあります。ここで、myBean は ViewScoped Bean であり、name はオブジェクトです。
<h:inputText value="#{myBean.name}"/>
2ページ目には、
<f:metadata>
<f:viewParam name="userId" value="#{myBean.name}"/>
</f:metadata>
「null コンバーター」のエラー Conversion Error setting value mypackage.myBean@257100b が表示されます。ビュー パラメータに String 値以外のオブジェクトを渡すことはできますか?
jsf-2 - JSFのf:viewParamにUTF-8文字列を渡す
UTF-8文字列を値として渡そうとしましたが、値はガベージ文字列として表示されます。UTF-8を次のように要求および応答するように設定するためにf:viewParam
EncodingFilterを追加しました。web.xml
このスタイルでフェイスレットページを定義しましたが、問題は解決していません
Myfaces2.0.5とMojarra2.0.5でこれをテストします