f:ajax 不工作
我无法让 f:ajax
在 h:panelGroup
上工作。
这就是我正在做的:
JSF 代码:
<h:panelGroup id="contacts_tab_contacts_list_list">
<h:form>
<ul>
<c:forEach items="#{currentDevice.contacts}" var="contact">
<li>
<f:ajax event="click" onevent="logcheck()">
<h:panelGroup layout="block"
styleclass="contacts_tab_contacts_list_quickview_box" >
<h:outputText value="#{contact.firstName} #{contact.familyName}" />
</h:panelGroup>
</f:ajax>
<f:ajax event="click" onevent="logcheck()">
<f:param value="#{contact.getUUID}" name="currContactUUID" />
<h:commandButton value="#{contact.firstName} #{contact.familyName}"
styleclass="contacts_tab_contacts_list_quickview_box" />
</f:ajax>
</li>
</c:forEach>
</ul>
</h:form>
</h:panelGroup>
它在网页上的样子:(忽略愚蠢的格式:-))
最后,页面的源代码如下:(
<li>
Name - 35 Family - 35
<input
id="j_id594943238_6609edf4:j_id594943238_6609ec58"
name="j_id594943238_6609edf4:j_id594943238_6609ec58"
type="submit"
value="Name - 35 Family - 35"
onclick=".. removed .." />
</li>
注意 h:panelgroup
被 li
元素“吞没”。)
我可以单击 h:commandButton
并且它可以正常工作。
当我单击文本时没有发生任何事情,这是有道理的,因为从源代码来看,h:panelGroup
和 f:ajax
已经消失了!
就是这样。抱歉,篇幅较长,但我想了解所有细节。 感谢您的帮助:-)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为 panelGroup 会被吞掉,因为里面只有一个组件。也许jsf优化了它。
然后只剩下
h:outputText
和这个 组件 未实现 javax.faces.component.behavior.ClientBehaviorHolder 接口,这是附加 ajax 的组件所必需的。您可以使用
h:outputLink
或h:outputLabel
代替。I think the panelGroup will be swallowed since there is only one component inside. Maybe jsf optimizes it.
Then there is only the
h:outputText
left and this component doesn't implement the javax.faces.component.behavior.ClientBehaviorHolder interface which is required for a component that gets ajax attached.You could use
h:outputLink
or maybeh:outputLabel
instead.为 ajax 做的小 POC 可能对其他人有用
这个块将显示我们可以一起调用托管 bean 方法和 Ajax,并且它可以使用 JSF2.0
ManagedBean 工作:
did small POC for ajax may be useful for others
This chunk will show that we can call managed bean method and Ajax together and it works using JSF2.0
ManagedBean: