JSF实际值输入文本

  • 本文关键字:文本 JSF jsf seam
  • 更新时间 :
  • 英文 :


如何将emailEdit文本框中的实际值(更改后)传递给函数,或者如何在更改时将该值绑定到bean的另一个属性?

当前我得到了这个:

<h:inputText id="emailEdit"
value="#{portalUserHome.instance.customer.email}">
</h:inputText>
<s:link value="Send mail"
action="#{customerEdit.sendEmail}"  rerender="myCustomerEditData,myCustomerData"></s:link>

Thanks in advance

[假设你在这里谈论的是一个EL函数,而不是JS函数]有几种方法,但它们大多是从你必须将文本绑定到页面作用域开始的:

<h:inputText id="emailEdit" binding="#{emailEdit}" value="#{portalUserHome.instance.customer.email}"/>

从这里开始,你几乎可以做任何你想做的事情,使用emailEdit

的绑定来引用文本框
  • 您可以将值直接传递给您感兴趣的方法(仅从EL 2.2开始可用)

    <s:link value="Send mail" action="#{customerEdit.sendEmail(emailEdit.value)}" rerender="myCustomerEditData,myCustomerData"/>
    
  • 您可以使用f:attribute标记传递值,然后在函数

    中检索传递的属性
    <s:link id="emailLink" value="Send mail"action="#{customerEdit.sendEmail}"  rerender="myCustomerEditData,myCustomerData">
         <f:attribute name="emailValue" value="#{emailEdit.value}"/>
    </s:link>
    

    在函数中检索:

    public void sendEmail(){
        FacesContext ctxt = FacesContext.getCurrentInstance();
        UIComponent comp = ctxt.getViewRoot().findComponent("emailLink"); //assuming you already have a FacesContext
        String theValue =  comp.getAttributes().get("emailValue").toString(); //obligatory null check omitted for brevity
    }
    

相关内容

  • 没有找到相关文章

最新更新