【发布时间】:2012-03-26 08:30:58
【问题描述】:
我正在使用
[javax.enterprise.resource.webcontainer.jsf.renderkit]
Unable to find component with ID nTAS in view.
这是 XHTML:
<ui:repeat var="item" ...>
...
<h:inputText value="#{bean.chosenItems[item.name]}" id="n#{item.name}" >
<f:validateLongRange minimum="0" maximum="10" />
</h:inputText>
<h:message for="n#{item.name}" />
...
</ui:repeat>
为了至少在浏览器中获得某种错误消息,我还在页面顶部附近添加了这个,它可以工作:
<h:messages styleClass="error" />
它显示此消息:
j_idt13:j_idt17:1:n: Validation Error: Value is not of the correct type.
这说明了问题的一部分,因为 ID 是消息开头的那个奇怪的代码,它以“n”开头,但不包含项目的名称。如果我在浏览器中查看源码,ID其实是:id="j_idt13:j_idt17:1:nTAS"
如果我查看表格之外的其他组件,它们也有神秘的 ID,显然是由 JSF 生成的。
真正奇怪的是,当我第二次输入“asdf”并重新提交表单时,它会调用 bean 上的操作方法,而不是在验证阶段再次失败!怎么可能?!
感谢您的任何提示, 约翰
【问题讨论】:
标签: jsf