我在readmode中有一个文档,我需要一个多选字段(可编辑)。所以我创建了这样的东西
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<select multiple="multiple" name="myField" id="myField" size="3">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<xp:button value="Test" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:print(param.get("myField"));}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
</xp:view>
当我按下按钮时,我只选择了一个值,当我只选择一个条目时,如果我选择了多个,我只得到了null。有没有从原生html字段中获取多个值的技巧?
答案 0 :(得分:4)
使用XPages多选,但将其绑定到视图范围变量。然后,您可以轻松访问该值。
<xp:checkBoxGroup id="checkBoxGroup1"
value="#{viewScope.someOptions}">
<xp:selectItem itemLabel="One" itemValue="1"></xp:selectItem>
<xp:selectItem itemLabel="Two" itemValue="2"></xp:selectItem>
<xp:selectItem itemLabel="Three" itemValue="3"></xp:selectItem>
</xp:checkBoxGroup>
那应该为你做的伎俩。然后,只需访问viewScope.someOptions
即可获得一系列值。让我们知道它是怎么回事
答案 1 :(得分:2)
所选值包含在HTTP请求的POST数据中。您可以通过 ExternalContext 的 RequestParameterMap 访问该值。
这是一个EL语句,可以解决这个问题:
<xp:label id="label1" value="#{facesContext.externalContext.requestParameterMap.myField}" />