有没有办法在不使用托管属性的情况下将输入值作为操作参数传递?
IE
<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>
然而,这种方法的正确性是非常值得怀疑的,并且取决于具体的功能要求。这种方法基本上是将视图与模型紧密耦合,因此被认为是一种不好的做法。