<h:selectonemenu> selectOne项目并呈现“inputText”</h:selectonemenu>

时间:2012-05-15 11:12:59

标签: java jsf jsf-2

我有一个dropdownbox和一个inputText。这是我的xhtml代码:

<h:panelGroup id="inputs">
<h:selectOneMenu value="#{tabBean.refundCharge}" name="reCharge">
    <f:selectItems value="#{tabBean.reChargeList}" />
    <f:ajax render="inputs" />
    </h:selectOneMenu>


    <p:inputText value="#{tabBean.refundDescr}"  rendered="#{tabBean.refundCharge == 'Item2'}"/>
</h:panelGroup>

这是TabBean:

 private String            refundCharge;

    public String[] getReChargeList() {


        ResourceBundle config = ResourceBundle.getBundle("config");
        String reChargeList=   "Item1 % Item2 % Item3";
        String delimeter = "[%]";
        String[] reChargeDescr = reChargeList.split(delimeter);

        return reChargeDescr;
    }

未显示inputText。当我从dropDownList中单击Item2值时,必须显示输入文本。但这些代码不起作用。

必须在我点击Item2时显示。错误在哪里?

由于

1 个答案:

答案 0 :(得分:3)

%中的每个reChargeList前后都有空格。因此,分割值实际上是"Item1 "" Item2 "" Item3"" Item2 "不等于您在"Item2"属性中指定的rendered,因此永远不会呈现。{/ p>

删除这些空格或将拆分分隔符更改为\\s*%\\s*