【发布时间】:2014-02-21 16:34:17
【问题描述】:
嗨,我有这个场景,我有 2 个表单,每个表单都使用 preprendId=false,第一个有一个 h:panelGroup,我想从第二个 h:form 更新。我遇到的问题 是我不知道我必须放什么字符串来更新我的 panelGroup。我试过这个字符串:
panelGroupComboId 和 :panelGroupComboId
但我总是得到:找不到从...引用的表达式“:panelGroupComboId”的组件
因为我需要至少在第一个表单(我的 panelGroup 所在的位置)中使用 preprendId=false,所以我无法设置 preprendIf=true,但如果我这样做了,我可以使用以下方法更新我的组件有任何问题::loginFormRegistroId :panelGroupComboId
但请记住,我需要使用 preprendId=false,当我使用 preprendId=false 时,我可以看到使用 我的 h:panelGroup 被转换为 id 为 panelGroupComboId 的 div 的萤火虫,这就是为什么我不必调用更新它的原因。
preprendId=true 是唯一可行的方法吗?
第一式
<h:form id="loginFormRegistroId" prependId="false">
<h:panelGroup id="panelGroupComboId" layout="block">
<select id="comboCarreraId" name="comboCarreraId" class="form-control">
<ui:repeat value="#{miBean.list}" var="obj">
<option value="#{obj.id}">#{obj.name}</option>
</ui:repeat>
</select>
</h:panelGroup>
</h:form>
第二种形式
<h:form prependId="false">
<p:remoteCommand
name="cargarCarrerasRemoteCommand"
process="@this"
actionListener="#{miBean.myListener}"
update="panelGroupComboId">
</p:remoteCommand>
</h:form>
顺便说一下,我不想更新整个第一个 FORM,只是我的 h:panelGroup
【问题讨论】:
-
prependId是 JSF 1.2 中最糟糕的添加之一,他们不应该添加它。摆脱它。它确实解决不了任何无法解决的问题,只会产生新的问题。
标签: jsf jsf-2 primefaces