(根据选择不同单选框,弹出窗的内容不同) 二种方法 方法一:将参数传递给弹出窗口的URL window.open("popup.jsf?country="+ country[i].value, "popup", "height=300,width=200,toolbar=no,menubar=no," + "scrollbars=yes"); popup.jsf页面获取country请求参数的值,${param.country} 保存在param.country中。 <h:dataTable value="#{bb.states[param.country]}" var="state"> ^*方法二:隐藏表 <h:form id="hidden" target="popup"> <h:inputHidden id="country" value="#{bb.country}"/> //后面会自动提交隐藏表单,contry值会传到BackingBean了 <h:commandLink id="go" action="showStates"/> </h:form> document.getElementById("hidden:country").value = country[i].value; document.getElementById("hidden:go").onclick(null); <h:dataTable value="#{bb.statesForCountry}" var="state"> <h:column> <h:outputLink value="#" οnclick="doSave('#{state}');"> <h:outputText value="#{state}" /> </h:outputLink> </h:column> </h:dataTable> BackingBean.java部分代码如下: private String country = "USA"; public String[] getStatesForCountry() { return (String[]) states.get(country); } static { states = new HashMap<String, String[]>(); states.put("USA", new String[] { "Alabama", "Alaska"}); states.put("Canada", new String[] { "Alberta", "British Columbia"});
附件:csdn空间6/testCoreJSF.rar