(根据选择不同单选框,弹出窗的内容不同)
二种方法
方法一:将参数传递给弹出窗口的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