Ajax JSF(seam)如何在没有表单提交的情况下更改组合框内容
我有一个表格输入信息,包括3个字段Ajax JSF(seam)如何在没有表单提交的情况下更改组合框内容,ajax,jsf,seam,Ajax,Jsf,Seam,我有一个表格输入信息,包括3个字段 文本框用户名(requiree=true) 组合框银行名称(requiree=true) 组合框银行分行(requiree=true) 我想当用户选择银行时,银行分行将在不填写表格的情况下加载(特定用户不需要填写文本框:“用户名”) 例如:我的XHTML表单 <h:form id="ftextform"> <s:validateAll id="ValidateAll"> <fieldset>
<h:form id="ftextform">
<s:validateAll id="ValidateAll">
<fieldset>
<div class="entry">
<h:outputLabel for="name" styleClass="label #{invalid?'errors':''}">name<em>*</em></h:outputLabel>
<h:inputText id="name" value="#{branch.name}" required="true" />
</div>
<div class="entry">
<h:selectOneMenu id="creditBank" value="#{branch.creditBank}" immediate="true">
<f:selectItems value="#{fExtBankList}"></f:selectItems>
<a:support id="onkeyup" event="onchange" actionListener="#{branch.creditBankchange}" reRender="searchResults"/>
</h:selectOneMenu>
</div>
<a:outputPanel id="searchResults">
<div class="entry">
<h:selectOneMenu id="creditBankBranch" value="#{branch.creditBankBranch}">
<f:selectItems value="#{branch.creditBankBranchList}"></f:selectItems>
</h:selectOneMenu>
</div>
</a:outputPanel>
</fieldset>
<fieldset>
<div class="buttonBox">
<h:commandButton id="check" value="Cancel" action="#{branch.cancel}" immediate="true"/>
 
<h:commandButton id="next" value="Next" action="#{branch.next}"/>
</div>
</fieldset>
</s:validateAll>
</h:form>
名字*
我的豆豆:
@Name("branch")
public class Branch implements IBranch
{
private static int count = 0;
private String creditBank;
private String creditBankBranch = "aaa";
private String name;
private List<SelectItem> creditBankBranchList = new ArrayList<SelectItem>();
// action
public void creditBankchange()
{
SelectItem e = new SelectItem(creditBank + count, creditBank);
creditBankBranchList.add(e);
}
....
@Name(“分支机构”)
公共类分支实现IBranch
{
私有静态整数计数=0;
私人信贷银行;
私有字符串creditBankBranch=“aaa”;
私有字符串名称;
私有列表creditBankBranchList=新建ArrayList();
//行动
公开作废贷记银行更改()
{
SelectItem e=新的SelectItem(creditBank+计数,creditBank);
creditBankBranchList.add(e);
}
....
简单的答案是使用
详情:
视图(xhtml)
名字*
和bean:
public class Branch implements IBranch
{
private String creditBank;
private String creditBankBranch;
private String name;
private List<SelectItem> creditBankBranchList = new ArrayList<SelectItem>();
private List<SelectItem> creditBankList = extBankList();
// action
public void creditBankchange()
{
extBankBranchList();
}
// (test)create test banks list
private List<SelectItem> extBankList()
{
List<SelectItem> list = new ArrayList<SelectItem>();
for(int i =0; i < 10; i ++)
{
list.add(new SelectItem(i, Integer.toString(i)));
}
return list;
}
// (test)load bank branchs list from bank
private void extBankBranchList()
{
this.creditBankBranchList.clear();
for(int i =0; i < 10; i ++)
{
this.creditBankBranchList.add(new SelectItem(i, "bank " + this.creditBank + "branch " + Integer.toString(i) ));
}
}
public类分支实现了IBranch
{
私人信贷银行;
私人银行分行;
私有字符串名称;
私有列表creditBankBranchList=新建ArrayList();
私有列表creditBankList=extBankList();
//行动
公开作废贷记银行更改()
{
extBankBranchList();
}
//(测试)创建测试库列表
私有列表extBankList()
{
列表=新的ArrayList();
对于(int i=0;i<10;i++)
{
添加(新的SelectItem(i,Integer.toString(i));
}
退货清单;
}
//(测试)从银行加载银行分行列表
私有无效extBankBranchList()
{
this.creditBankBranchList.clear();
对于(int i=0;i<10;i++)
{
this.creditBankBranchList.add(新的SelectItem(i,“bank”+this.creditBank+“branch”+Integer.toString(i));
}
}
public class Branch implements IBranch
{
private String creditBank;
private String creditBankBranch;
private String name;
private List<SelectItem> creditBankBranchList = new ArrayList<SelectItem>();
private List<SelectItem> creditBankList = extBankList();
// action
public void creditBankchange()
{
extBankBranchList();
}
// (test)create test banks list
private List<SelectItem> extBankList()
{
List<SelectItem> list = new ArrayList<SelectItem>();
for(int i =0; i < 10; i ++)
{
list.add(new SelectItem(i, Integer.toString(i)));
}
return list;
}
// (test)load bank branchs list from bank
private void extBankBranchList()
{
this.creditBankBranchList.clear();
for(int i =0; i < 10; i ++)
{
this.creditBankBranchList.add(new SelectItem(i, "bank " + this.creditBank + "branch " + Integer.toString(i) ));
}
}