问题描述
|
我很难让ѭ0进入on1的工作。
这是我正在做的事情:
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>
(注意li
元素如何“吞噬”h:panelgroup
。)
我可以单击h:commandButton
,它可以正常工作。
当我单击文本时什么也没有发生,这是有道理的,因为从源代码中看,ѭ1和ѭ0消失了!
而已。抱歉,长度有限,但我想知道所有细节。
谢谢您的帮助 :-)
解决方法
我认为panelGroup将被吞噬,因为其中只有一个组件。也许jsf对其进行了优化。
然后只剩下“ 9”,并且此组件未实现javax.faces.component.behavior.ClientBehaviorHolder接口,该接口对于附加了ajax的组件是必需的。
您可以改用
h:outputLink
或h:outputLabel
。
,进行POC的小型POC可能对其他人有用
该块将显示我们可以一起调用托管bean方法和Ajax,并且可以在JSF2.0中使用
<h:form>
<h:inputText id=\"comments\" value=\"#{photoManagedBean.name}\"></h:inputText>
<h:commandButton value=\"Comments Input\" >
<f:ajax execute=\"comments\" listener=\"#{photoManagedBean.saveComments()}\" render=\"displayRecentComments\" />
</h:commandButton>
<br/>
<table width=\"600\" border=\"0\" height=\"80\">
<td>
<h:outputText id=\"displayRecentComments\" value=\"#{photoManagedBean.name}\"/>
</td>
</table>
</h:form>
ManagedBean:
public void saveComments() { //ur code//}