【问题标题】:Get string behind binding object获取绑定对象后面的字符串
【发布时间】:2017-05-03 15:53:19
【问题描述】:

我有以下 JSF 构造:

    <c:set var="myVar" value="#{myBean.getMyMap()}" scope="request" />
    <h:form>
    <p>
        <h:outputText value="Output1: " />
        <h:selectOneMenu value="#{myMappingsBean.data.attribute1}" binding="#{input1}" required="true">
            <f:selectItems var="entry" value="#{myVar}"/>
            <p:ajax update="myDropdown"/>
        </h:selectOneMenu>
    </p>
    <p>
        <h:outputText value="Output2: " />
        <h:selectOneMenu id="myDropdown" value="#{myMappingsBean.data.attribute2}" binding="#{input2}" required="true" converter="javax.faces.Double">
            <f:selectItems var="entry" value="#{myVar.get(input1.value)}"/>
        </h:selectOneMenu>
    </p>
    </h:form>

myVar 后面是这样定义的映射:Map&lt;String, Collection&lt;Double&gt;&gt;

第一个下拉菜单显示该映射的所有键的列表(如所需),但其后面的值是值的集合。 这里是该下拉列表的一个选项的 HTML 输出:

<option value="[1.0, 2.0]">SomeString</option>

我的第二个下拉列表应该列出存储在键后面的映射中的双值集合,该集合由第一个菜单选择。 现在的问题是,当我使用value="#{myVar.get(input1.value)}" 时,我从.value 获得的值是集合而不是地图的字符串/键。所以我从来没有得到想要的结果。 如何获取绑定对象input1 后面的字符串/键?有类似input1.name.toString 的东西吗?某处有这方面的纪录片吗?

【问题讨论】:

  • 请附上豆源。通过 EL 表达式中的属性(getter/setter 方法)访问 bean 字段:... value="#{myBean.myMap}"
  • bean 中没有属性 myMap。只有 getMyMap() 方法返回所述地图。它也不会被页面更改,所以我想不需要设置器。 .data 的所有其他 setter 和 getter 只是设置或返回变量。我的问题在于对象input1。使用.value 我得到了值,但我还需要希望也存储在那里的字符串。

标签: jsf


【解决方案1】:

好的,我通过应用here 的解决方案解决了这个问题。 第一个下拉菜单必须编辑为以下内容:

    <p>
        <h:outputText value="Output1: " />
        <h:selectOneMenu value="#{myMappingsBean.data.attribute1}" binding="#{input1}" required="true">
            <f:selectItems var="entry" value="#{myVar.entrySet()}" itemValue="#{entry.key}" itemLabel="#{entry.key}"/>
        </h:selectOneMenu>
    </p>

如您所见,条目集是从映射创建的,并且您将键用作值和标签。 有了这个,input1.value 背后的价值现在不是双打的集合,而是地图的关键。

【讨论】:

    猜你喜欢
    • 2013-03-30
    • 2021-03-12
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多