费了好大的劲才调试好下面这段页面。用户点击USA或者是CANADA,然后在一个SelectOneMenu里面显示美国州或者加拿大省。
页面:
<h:outputText value="Please select your country" />
<h:form id="forma">
<h:selectOneRadio value="#{Regions.country}">
<f:selectItem itemLabel="USA" itemValue="USA" />
<f:selectItem itemLabel="CANADA" itemValue="CANADA" />
<a:support event="onchange" reRender="regionPanel" />
</h:selectOneRadio>
</h:form>
<a:outputPanel id="regionPanel" ajaxRendered="true">
<s:decorate id="regionDecoration" template="layout/display.xhtml">
<ui:define name="label">#{Regions.selectARegionLable}</ui:define>
<h:selectOneMenu id="selectRegion"
value="#{dealerList.region}" required="true">
<f:selectItems value="#{Regions.regionMap}" />
</h:selectOneMenu>
</s:decorate>
</a:outputPanel>
Bean:
public Map getRegionMap() {
Map l = new HashMap();
if ("USA".equals(country)) {
for (String s : USAStates.states)
l.put(s, s);
setSelectARegionLable("Please select a state:");
} else if ("CANADA".equals(country)) {
for (String s : CanadaProvinces.states)
l.put(s, s);
setSelectARegionLable("Please select a provice:");
} else {
l.put("No region to show", "No region to show");
}
return l;
}
public void setCountry(String country) {
this.country = country;
}
public String getCountry() {
return country;
}
问题出在selectonemenu的属性required=true.估计是因为没有选择一个值导致验证失败,中断了JSF处理周期。去掉以后显示正常。
分享到:
相关推荐
在JSF(JavaServer Faces)框架中,`<h:selectOneMenu>` 是一个用于创建下拉选择框的组件,而 `<a4j:support>` 是RichFaces库提供的一种Ajax支持的标签,它允许我们实现页面的部分更新,提高用户体验。这篇博客文章...
本篇将深入探讨如何使用`<h:selectOneMenu>`标签来实现这种功能,该标签是JavaServer Faces (JSF)框架的一部分。 ### JSF `<h:selectOneMenu>`标签介绍 `<h:selectOneMenu>`是JSF中用于创建单选下拉列表的组件。它...
"selectOneMenu"是一个常见的下拉选择框组件,在某些情况下,它可能会与其他元素的对齐方式出现不一致,这通常涉及到CSS样式和布局设置。本文将详细探讨这个问题的原因以及解决方案。 ### 问题分析 问题描述中的...
`<h:selectOneMenu>`允许用户选择日期的显示格式,通过`onchange`事件和`a4j:support`,当选择改变时,日历的日期格式会同步更新。 这些例子展示了RichFaces的强大功能,包括与后台bean的双向数据绑定、AJAX更新...
7. **`<a4j:commandLink>`**: 类似于`<a4j:commandButton>`,但表示为链接形式。 8. **`<h:form>`**: 包裹表单元素,处理表单提交。 9. **`<f:view>`**: 设置视图根元素,控制页面生命周期。 #### 五、示例:使用...
在JSF(JavaServer Faces)框架中,`h:selectOneMenu` 是一个用于创建下拉选择框的组件。在某些场景下,我们可能需要将这个组件设置为只读或不可编辑状态,以便用户只能查看选项,而不能进行选择。本文将详细讲解...
- **第3章:a4j:* 标签、特性和概念** - 探讨了a4j命名空间中的标签,这些标签为JSF带来了AJAX支持。 - **第4章:开始使用Rich组件** - 介绍RichFaces提供的各种组件及其基本用法。 - **第5章:富输入和选择组件** -...
在实际开发中,JSF的这些选择组件常常与EL(Expression Language)和CDI(Contexts and Dependency Injection)结合使用,以实现动态选项加载、验证和转换等功能。开发者还可以自定义组件和渲染器,以满足特定的界面...
通过这种方式,开发者可以无限扩展 `h:selectOneMenu`,实现无限级联选择,极大地增强了 JSF 应用的灵活性和用户体验。 QFaces 的安装和使用可以通过提供的链接获取详细指南。对于希望深入理解 JSF 自定义组件的...
素面Selenium 基于JUnit5,Selenium和页面对象/碎片概念的PrimeFaces测试支持。 它还支持JUnit5并行测试执行,以加快测试速度。 PrimeFaces-Selenium提供了一个挂钩,以启动本地服务器,使用远程地址并实例化...
级联菜单的前端部分可能就是由JSF的组件实现,例如使用h:selectOneMenu或p:selectOneMenu(PrimeFaces扩展)。 2. **CDI(Contexts and Dependency Injection)**: CDI是Java EE中的依赖注入标准,Seam完全支持CDI...
<h:selectOneMenu id="selType" value="#{authfile.queryFileType}" disabled="#{authfile.showResult}" styleClass="ui-inputfield ui-widget ui-state-default ui-corner-all" accesskey="2" title="#{msg['...
Log4J适配器;FacesMessage监听器;组件树可视化查看器。 PrimeUI是一套JavaScript Widget控件,可用于创建UI。PrimeUI是把原PrimeFaces的组件进行解耦,提取出来的JS控件可以用于PHP、ASP、 Wicket、GWT等等的开发...
这是通过在`h:selectOneMenu`标签中添加`onchange`属性来实现的: ```xml <h:selectOneMenu onchange="submit()"> ... </h:selectOneMenu> ``` 这里,`submit()`函数触发了一个Ajax请求,使得地图可以在用户更改...
selectItem标签用于指定UISelectOne或UISelectMany组件的一个项目,用来为h:selectOneMenu等选择性组件设置选择数据项。示例代码: ``` <h:selectOneMenu value="#{bean.selectedItemValue}"> </h:selectOneMenu>...
- **Input components**:如`<p:inputText>`、`<p:selectOneMenu>`等,提供了丰富的输入控件。 - **Ajax支持**:PrimeFaces的组件通常内置了Ajax功能,例如`<p:commandButton>`,可以通过异步更新页面部分,提升...
<h:selectOneMenu id="country" value="#{bean.country}"> </h:selectOneMenu> <h:selectOneMenu id="city" value="#{bean.city}"> </h:selectOneMenu> ``` 在后台,`onCountryChange`方法更新城市列表: ```...
robStrategy(String probeStrategy) { this.probeStrategy = probeStrategy; }}(2) 如果下拉列表的内容不是固定的,而是需要从后台动态加载,...例如:<h:selectOneMenu value="#{ConfInitFTPVBean.probeStrategy}"> ...
- **选择标签 (`<h:selectOneMenu>`, `<h:selectManyCheckbox>`)**:提供用户进行单选或多选的功能。 - **消息 (`<h:message>`)**:显示验证错误或其他消息。 - **面板 (`<h:panelGrid>`, `<h:panelGroup>`)**:用于...