`
yourenyouyu2008
  • 浏览: 291948 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

给h:selectOneMenu增加一个不会提交的选项

    博客分类:
  • jsf
阅读更多

问题描述:

目前我所实验过的h:selectOneMenu的每个f:selectItem如果被选中,当表单提交后h:selectOneMenu就有值了,即使选中的f:selectItem 的itemDisabled="true"也照样会被提交,这样就不是我们想要的了,比如我们的下拉项中的第一个是“---请选择--”,这表明我们还没有选择,那么提交后选择框是不应该有值的。

解决办法:

在该值的set方法中判断,如果是“--请选择--”选项对应的值就不直接放回,这样它的值就还是null,相当与没有选择任何选项。

<h:selectOneMenu value="classA.type">
  <f:selectItem itemVlue="0">请选项</f:selectItem>
  <f:selectItem itemVlue="1">选项1</f:selectItem>
  </h:selectOneMenu>

 

public void setType(String type){

if("0".equals(type))return;

this.type=type;

}

希望的解决办法:

1)itemDisabled="true"属性起到作用,选择后不会提交

2)给h:selectOneMenu增加个属性,说明第几项开始后的选项才会被提交。

以前用过的webwork中下来组件有这种功能,可能selectOneMenu也可以,请高手们执教如何使用。

分享到:
评论
2 楼 yourenyouyu2008 2008-06-11  
正是因为需要做为sql的where条件,所以才需要迫切解决该问题。
现在的很多持久层框架都不需要我们自己来拼装查询条件了,那样的编码太繁琐,框架都会根据是否输入了值来动态拼装条件,这时就会把<f:selectItem itemVlue="">请选项</f:selectItem>也当作条件了。
示例,会根据这些值是否为null来动态拼装下面的restrictions
<framework:entity-query name="jsys_search"
                        ejbql="select h from JsYS
                        max-results="8"
                        entity-manager="#{em}">
                       
    <framework:restrictions>
        <value>lower(h.fxzq)=#{jsYSVO.fxzq}</value>
        <value>h.type in(#{jsYSVO.type},'3')</value>
      
    </framework:restrictions>
 
</framework:entity-query>
1 楼 terryzhou 2008-06-11  
这个不是问题吧...input,select大多都是做为sql的where条件的...
一般dao层拼sql时候都会判xxx!=null&&!xxx.equals("")
<f:selectItem itemVlue="">请选项</f:selectItem>

相关推荐

    standard_jsf_tags.pdf

    选择标签用于让用户从多个选项中选择一个或多个项。JSF 提供了 `&lt;h:selectOneMenu&gt;`、`&lt;h:selectManyCheckbox&gt;` 等标签来实现这些功能。例如: ```html &lt;h:selectOneMenu value="#{bean.selectedOption}"&gt; &lt;f:...

    myfaces标签库

    4. **`&lt;h:selectOneMenu&gt;`**: 创建一个下拉菜单供用户选择单个选项。 5. **`&lt;a4j:region&gt;`**: 定义一个区域,其中的内容可以通过Ajax方式进行异步更新。 6. **`&lt;a4j:commandButton&gt;`**: 类似于`&lt;h:commandButton&gt;`,...

    jsf 控件说明(很好)

    4. 选择(Selections):如`&lt;h:selectOneMenu&gt;`,用于提供用户选择的选项。 5. 其他:包括`&lt;h:form&gt;`、`&lt;h:message&gt;`、`&lt;h:messages&gt;`和`&lt;h:graphicImage&gt;`等。 JSF组件通常有若干共同的属性,如: - `id`:用于...

    精通JSF标签一字不漏

    在JavaServer Faces (JSF) 框架中,`f:actionListener` 标签提供了一种机制来为`h:commandLink`、`h:commandButton`等命令组件指定自定义的事件监听器类。通过这种方式,开发者能够更加灵活地控制这些命令组件的行为...

    《JSF标签》简体中文版.pdf

    - **selectBooleanRadio**:生成单选按钮组,每个按钮代表一个布尔值。 #### 1.7 其他标签 除了上述分类,还有一些其他类型的标签,如`form`、`message`、`messages`、`graphicImage`等,用于不同的功能需求。 - ...

    学习技术 jsf必备 ————JSF标签.pdf

    - **selectOneMenu**: 创建一个下拉列表,用户只能选择一个选项。 - **selectManyMenu**: 创建一个下拉列表,用户可以选择多个选项。 - **selectOneRadio**: 创建一组单选按钮。 - **selectManyCheckbox**: 创建一组...

    《JSF标签》简体中文版 pdf

    - **selectOneMenu**:生成下拉菜单,用户只能选择一个选项。 - **selectManyMenu**:生成多个下拉菜单,用户可以选择多个选项。 - **selectOneListbox**:生成单选列表框。 ##### 1.6 其他标签 除了上述类别外,...

Global site tag (gtag.js) - Google Analytics