【问题标题】:Pass an input value directly as action method argument将输入值直接作为操作方法参数传递
【发布时间】:2013-08-20 16:58:47
【问题描述】:

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

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

【问题讨论】:

    标签: jsf jsf-2


    【解决方案1】:

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

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

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

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      相关资源
      最近更新 更多