私はプロジェクトの再設計の過程にあり、バグと思われるものに出くわしましたが、バグの発生源について混乱しています。
基本的に、私がやろうとしているのは、URL パラメーターをバッキング Bean に渡すことだけです。魔法はなく、これを達成するためのさまざまな方法がたくさんあります。以下は、私が定期的に使用するものです。
- Bean を @Named から @ManagedBean に変更してから、@ManagedProperty を使用できます
- を使用してパラメーターにアクセス
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
し、マップから目的のパラメーターを取得できます - または、次を使用できます。
<f:metadata><f:viewParam name="id" value="#{backingBean.id}"/></f:metadata>
Glassfish 3+でJSF 2.1を使用している場合、これら3つすべてが完全に機能します。問題は、私の現在のプロジェクトが JSF 2.2 と Glassfish 4 を使用していて、これらのどれも機能しないことです! 私が何をしても、パラメーターは決して設定されず、常に null になります。
これをさらに追跡する方法がわかりません。前回のプロジェクトからの明らかな変更点は、Glassfish 3 の代わりに 4、6 の代わりに JavaEE 7、2.1 の代わりに JSF 2.2 を使用していることです。投稿できるエラーや例外はありません。
私がテストできるもの、または私が試すことができる代替ソリューションは他にありますか? これに失敗すると、これを引き起こす可能性のある報告されたバグまたは変更を知っている人がいます。最後に、誰でもこのエラーを再現できますか?