我有以下问题:从一个按钮调用一个java方法,这个方法在同一页面中会有inputText的当前值,你可以这样做吗?
4 回答
1.create a managed bean. 2.define your method use this code ::
FacesContext facesContext = FacesContext.getCurrentInstance();
UIViewRoot root = facesContext.getViewRoot();
RichInputText inputText = (RichInputText)root.findComponent("it1");
String val=inputText.getValue();
where it1 is id for your input text
3.select button's action listener from the button property window. 4.call your managed bean and method
value
在 inputText 上指定一个属性,并使用对具有 View 或更高范围(例如value="#{viewScope.Bean.field}"
)的托管 bean 中的字段的 EL 引用,在您的 bean 中,您将拥有:
private String field;
public String getField(){
return field;
};
public void setField(String field){
this.field = field;
};
然后在同一个 bean 中指定一个actionListener
对commandButton
处理程序方法的引用:actionListener="#{viewScope.Bean.handleButton}"
。field
以这种方式访问:
public void handleButton(ActionEvent event){
System.out.println('Input field content: ' + getField());
};
有点难以说出你在问什么,但如果你想问:当我单击一个按钮时,我希望该按钮调用支持 Java bean 中的方法并访问 ADF Faces 页面上输入文本字段的值,答案是肯定的。您需要在输入文本字段上设置 Binding 属性并向按钮添加方法调用。使用按钮的 ActionListener 属性,并使用 actionlistener 方法指定或创建支持 bean。然后为输入文本字段设置绑定属性。支持 bean 应该具有文本字段的 get/set 方法,您可以使用它们来获取对文本字段的引用并调用 get/setValue() 方法。
明白了)
<af:panelFormLayout id="pfl1">
<f:facet name="footer">
<af:commandButton text="отправить" id="cb1"
actionListener="#{inBean.doSave}" partialSubmit="true"/>
</f:facet>
<af:inputText label="Ввести данные:" value="#{inBean.myParam}" id="it1"/>
<af:outputText value="#{inBean.myParam}" id="ot1" partialTriggers="cb1"/>
</af:panelFormLayout>
public void doSave(ActionEvent actionEvent) {
// ActionResponse response = (ActionResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
// response.setRenderParameter("myParam", myParam);
FacesContext context = FacesContext.getCurrentInstance();
UIViewRoot root = context.getViewRoot();
RichInputText inputText = (RichInputText) root.findComponent("it1");
myParam = (String)inputText.getValue();
}