Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 通过动态填充selectOneMenu中的选项_User Interface_Jsf_Primefaces - Fatal编程技术网

User interface 通过动态填充selectOneMenu中的选项

User interface 通过动态填充selectOneMenu中的选项,user-interface,jsf,primefaces,User Interface,Jsf,Primefaces,我正试图在primefaces中的一些下拉菜单中填充内容,这取决于GUI中其他选择的一些选项。这是我试图做的一个简化示例: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"

我正试图在primefaces中的一些下拉菜单中填充内容,这取决于GUI中其他选择的一些选项。这是我试图做的一个简化示例:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:p="http://primefaces.org/ui" 
      xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" >
    <h:head>
        <title>Test</title>
    </h:head>
    <h:body>
        <h:form>
            <c:set var="options" value="#{['1','2','3']}" />
            <c:set var="currentValue" value="#{3}" />
            <h:outputText value="${options}" />
            <ui:repeat var="r" value="#{options}">
                <h:outputText value="#{r}" />
            </ui:repeat>
            <c:set var="currentValue" value="#{currentValue}" />
            <p:selectOneMenu id="selectValue" 
                             value="${currentValue}" 
                             class="pFieldSet_Template_Input200 r10">
                <p:ajax event="change" />
                <ui:repeat var="r" value="#{options}">
                    <f:selectItem itemLabel="Choice #{r} (20180101)" itemValue="#{r}" />
                </ui:repeat>
            </p:selectOneMenu>
        </h:form>
    </h:body>
</html>
当我访问该页面时,它会显示[1,2,3]123和一个空的SelectOne菜单。我希望selectOneMenu也包含这些选项。迭代显然在上述情况下有效,所以我不知道为什么它不在菜单中显示选项。我做错了什么?

是一个UI组件,而像JSTL一样是一个标记处理程序。标记处理程序在视图生成期间运行,而UI组件在视图呈现期间运行。因此,在目前的运行中,没有任何方法可以实现

A也是一个标记处理程序,可以工作:

<p:selectOneMenu id="selectValue" 
                             value="${currentValue}" 
                             class="pFieldSet_Template_Input200 r10">
                <p:ajax event="change" />
    <c:forEach items="#{options}" var="r">
       <f:selectItem itemLabel="Choice #{r} (20180101)" itemValue="#{r}" />
    </c:forEach>
</p:selectOneMenu>
是一个UI组件,而像JSTL一样是一个标记处理程序。标记处理程序在视图生成期间运行,而UI组件在视图呈现期间运行。因此,在目前的运行中,没有任何方法可以实现

A也是一个标记处理程序,可以工作:

<p:selectOneMenu id="selectValue" 
                             value="${currentValue}" 
                             class="pFieldSet_Template_Input200 r10">
                <p:ajax event="change" />
    <c:forEach items="#{options}" var="r">
       <f:selectItem itemLabel="Choice #{r} (20180101)" itemValue="#{r}" />
    </c:forEach>
</p:selectOneMenu>

为什么不直接使用它呢?如果你不想让它按照@JasperdeVries的建议去做,你应该使用c:foreach来代替它,但这是不太动态的。读吧。如果使用简单的jsf select,同样会失败。因此,它与素数面无关。请始终检查某些通用组件是否也与素数面相关fails@jasper-德弗里斯我不知道你能那样做。在做了一点小动作后,他表现得很有魅力。谢谢。你为什么不简单地使用它呢?如果你不想让它按照@JasperdeVries的建议去做,你应该用c:foreach来代替它,但这是不太动态的。读吧。如果使用简单的jsf select,同样会失败。因此,它与素数面无关。请始终检查某些通用组件是否也与素数面相关fails@jasper-德弗里斯我不知道你能那样做。在做了一点小动作后,他表现得很有魅力。谢谢。可能的副本使它更清楚为什么不工作。谢谢。很多,如果不是大多数,甚至是所有这类问题,在stackoverflow中都有重复的Q/a。不回答这些问题,通常会提及副本。更清楚地说明了为什么它不起作用。谢谢。很多,如果不是大多数,甚至是所有这类问题,在stackoverflow中都有重复的Q/a。不回答这些问题,通常会提及副本。