管理プロパティを使用せずに入力値をアクションのパラメーターとして渡す方法はありますか?
すなわち
<h:form>
<h:inputText id="input" />
<h:commandButton action="#{someBean.doSome(input)}" />
</h:form>
はい、JSFコンポーネントの状態ですでにフォーム送信中です。binding
入力コンポーネントを属性によってビューにバインドするだけです。UIInput
インスタンスを参照します。インスタンスにgetValue()
は、入力値を取得するというまさに目的のためのメソッドがあります (アクション メソッドの引数として渡すことができます)。
<h:form>
<h:inputText ... binding="#{input}" />
<h:commandButton ... action="#{someBean.doSome(input.value)}" />
</h:form>
ただし、このアプローチの妥当性は非常に疑わしく、具体的な機能要件によって異なります。つまり、このアプローチは基本的にビューとモデルを密結合しているため、悪い習慣と見なされます。