为什么我得到“包含未知id':commentTextArea' - 无法在组件commentLink的上下文中找到它”错误?
majorra 2.1.7
我如何渲染commentTextArea。
<ui:repeat var="parentComment" value="#{commentTree.parentCommentsWrapper}"> ....
<h:form>
<h:commandLink id="commentLink" value="comment"
style="height:20px;width:20px;padding: 0; margin: 0;"
action="#{parentComment.changeEditable}">
**<f:ajax render=":commentTextArea"></f:ajax>**
</h:commandLink>
</h:form> <h:panelGroup id="commentTextArea">
<br />
<h:panelGroup rendered="#{parentComment.editable}">
<h:form >
<h:inputTextarea rows="2" cols="20"
value="#{commentTree.newCommentText}"
style="font-family:Arial,Helvetica;font-size:12px;width:365px;margin-right: 4px;margin-left: -1px;">
</h:inputTextarea>
<h:commandButton id="newCommentButton" value="+"
style="height:20px;width:20px;padding: 0; margin: 0;"
action="#{commentTree.saveChildComment(parentComment.comment)}" >
</h:commandButton>
</h:form>
</h:panelGroup>
</h:panelGroup>
</ui:repeat>
答案 0 :(得分:0)
id :commentTextArea
是绝对id并且相对于视图根。但是,ui:repeat
是一个NamingContainer并且&#34;包装&#34;你的commentTextArea
。 (检查浏览器中的html源以查看生成的id)
一个简单的解决方案是在你的“ui:repeat&#39;中只使用一个表单。然后是
的相对id<f:ajax render="commentTextArea">
(没有:
)会起作用。