有条件地在存在来自特定对象的消息时呈现组件

时间:2017-08-16 11:36:55

标签: twitter-bootstrap jsf jsf-2.2

我打算在下面的 bootstrap 表单中验证字段usernameTxt,并引用BalusC answerAleksei Loginov answer

<div class="form-group">
                <label class="control-label col-sm-2" for="usernameTxt">Fullname(*):</label>
                <div class="col-sm-10">
                    <h:inputText type="text" class="form-control" id="usernameTxt"
                        a:placeholder="Enter your name" required="true"
                        requiredMessage="Fullname is required"
                        value="#{data.personalInformation.username}"></h:inputText>
                    <h:panelGroup layout="block" rendered="#{not empty facesContext.getMessageList('usernameTxt')}" class="alert alert-danger">
                        <h:message for="usernameTxt"></h:message>
                    </h:panelGroup>
                </div>
            </div>

希望如果输入文本为空,那么它将呈现块<h:panelGroup>,结果应该像 enter image description here

(该照片是我删除not属性中的rendered条件时的照片。我不能正确地有条件地渲染块。渲染条件中是否有任何语法,或者我在这里遗漏了什么?

1 个答案:

答案 0 :(得分:1)

问题解决了。

我需要一整天的时间才能发现页面上的实际usernameTxt ID已经呈现,而且不像我预期的那样

enter image description here

所以我必须将条件改回

<h:panelGroup layout="block"
                        rendered="#{not empty facesContext.getMessageList('form:j_id_9:useridTxt')}"
                        class="alert alert-danger">
                        <h:message for="useridTxt"></h:message>
                    </h:panelGroup>

它解决了我的问题