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

标签 jsf jsf-2

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

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

最佳答案

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

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

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

另请参阅:

关于jsf - 直接传递输入值作为操作方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18340851/

相关文章:

css - 如何给 h :panelGrid 添加样式

jsf - 使用 JSF bean 验证在一个字段上使用多个验证器

jsf - p:dataTable initial SortBy with dynamic columns

java - 如何为 f :selectItems? 中的枚举创建和使用通用 bean

JSF 生成的 HTML 元素 ID 正在变化,如何将其设置为固定的元素 ID?

jsf - 如何更改 Primefaces 图表中的颜色?

jsf - Primefaces ajax事件更改不调用监听器

java - jquery 数据表不适用于 JSF

java - JSF - 在没有表单的情况下更新数据库中的行

ajax - JSF 中的分组标记不呈现任何内容?