当前位置: 首页 > 知识库问答 >
问题:

setPropertyActionListener与h:SelectOne功能表

邵奇
2023-03-14

我使用的是一个带有两列的datatable,其中有一个标签和一个selectOneMenu。

我需要动态显示selectOneMenu列表,我需要在bean中为其设置级别id。在commandbutton/commandLink中,我们可以在f:setPropertyActionListener的帮助下设置值。我只是想知道在使用selectonemenu时如何设置该值。任何帮助都将不胜感激。

    <p:dataTable style="width:750px;" id="inResultTable" var="result"
    value="#{RequestBean.independentFields}">
    <p:column>
    <f:facet name="header">
    <h:outputText value=" " />
    </f:facet>
    <h:outputText value="#{result.field_label}" />
    </p:column>
    <p:column>
    <f:facet name="header">
    <h:outputText value="" />
     </f:facet>
    <ui:repeat value="#{RequestBean.independentFields}" var="itm">   
    <h:selectOneMenu value="#{RequestBean.field1Value}"
     rendered="#{result.level_id==itm.level_id}">
    <f:selectItems value="#{RequestBean.indField}" />
    </h:selectOneMenu>
    <f:setPropertyActionListener target="#{RequestBean.level_id}"
     value="#{itm.level_id}"></f:setPropertyActionListener>
     </ui:repeat>
     </p:column>
     </p:dataTable>

共有1个答案

太叔弘壮
2023-03-14

您可以使用change ajax事件。

当某些项目将在您的selectOneMenu中更改时,ajax会调用您Bean中的某些方法。

像这样:

<h:selectOneMenu value="#{RequestBean.field1Value}"
     rendered="#{result.level_id==itm.level_id}">
    <f:selectItems value="#{RequestBean.indField}" />
    <f:ajax event="change" listener="#{yourBean.yourMethodToChangeSomeValue}" />
</h:selectOneMenu>

在您的方法中,您可以使用field dValue的值或将参数传递给xhtml中的另一个Bean方法。

 类似资料:
  • 我有两个h:SelectOne菜单(1:国家,2:城市)。我需要使用ajax在cities SelectOne菜单中加载一个选定国家的所有城市。当我更改countries selectOneMenu的值时,我的cities selectOneMenu从countryBean中获取空值。选择国家。 这是找到城市的方法: 因为countryBean,我得到了一个NullPointerException

  • 问题内容: 我正在用go编写一个简单的模拟器(我应该还是应该回到c?)。无论如何,我正在获取指令并对其进行解码。在这一点上,我有一个字节,如0x81,我必须执行正确的功能。 我应该有这样的东西吗 或类似的东西 1.哪个更好? 2.哪个更快? 还可以 3.我可以内联声明一个函数吗? 4.我有一个 我有寄存器等的地方。如果我有寄存器并且全部作为全局变量会更快吗?(没有) 非常感谢你。 问题答案: 第一

  • 问题内容: 是否有类似于C的Go功能,能够处理控制台中的Tab键?我想在控制台应用程序中完成一些工作。 问题答案: C的示例: 等效: 最后的注释行仅显示当您按下第一个元素时,是U + 0009(’CHARACTER TABULATION’)。 但是,由于您的需要(检测选项卡),C 并不适合,因为它需要用户按Enter键。您需要的是@miku提到的ncurses的getch()/ readline

  • 我正在将Serenity-BDD与cucumber一起使用,并且我想在每个功能文件上只运行一次某些内容。看起来cucumber目前不支持这一点。我想知道宁静是否有一些解决方法。 我还尝试在测试套件类中使用JUnit @BeforeClass,@AfterClass挂钩,但是这两个注释需要静态方法,我当时无法访问serenity page objects方法(当时没有注入实例)。

  • 问题内容: 这段代码的结果为56。 知道里面发生了什么吗?我很困惑。 问题答案: X返回(值+3),而Y返回(值* 2) 给定值为4,这表示。 尽管函数不受范围限制(这意味着您可以安全地“嵌套”函数定义),但是此特定示例容易出错: 1)您不能在调用 之前先调用,因为函数只有执行一次才真正定义。 2)调用两次将导致PHP重新声明function ,从而导致致命错误: 致命错误:无法重新声明y() 两

  • 问题内容: 我已经看到许多特定的案例,人们在询问,人们在解释两者之间的区别,但我似乎也不能理解一般的区别。这两个是同义词吗?一个暗示另一个吗? 问题答案: 这两个是同义词吗? 号说:“嘿,Android(及相关的发行渠道),请让用户允许我做X”。说:“嘿,Android(及相关的发行渠道),我有兴趣在具有Y功能的硬件上运行”。 如果硬件不符合您的要求,但用户不参与,则可能会将您从Play商店(和其