JSF 实际值输入文本
JSF actual value input text
如何将 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>
提前致谢
[假设你在这里谈论的是 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
}
如何将 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>
提前致谢
[假设你在这里谈论的是 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 }