直接传递输入值作为操作方法参数

时间:2013-08-20 16:58:48

标签: jsf jsf-2

有没有办法在不使用托管属性的情况下将输入值作为操作参数传递?

即。

<h:form>        
    <h:inputText id="input" />  
    <h:commandButton action="#{someBean.doSome(input)}" />  
</h:form> 

2 个答案:

答案 0 :(得分:1)

是的,它是在JSF组件状态中已经存在的表单提交期间。只需通过binding属性将输入组件绑定到视图,该属性将引用UIInput实例,该实例又具有getValue()方法,用于检索输入值(以便你可以将它作为动作方法参数传递):

<h:form>        
    <h:inputText ... binding="#{input}" />  
    <h:commandButton ... action="#{someBean.doSome(input.value)}" />  
</h:form> 

然而,这种方法的正确性非常值得怀疑,并取决于具体的功能要求。这种方法基本上是将视图与模型紧密耦合,因此被认为是一种不好的做法。

另见:

答案 1 :(得分:-3)

这对我有用: 在Java中: String dna = this.dna;