【发布时间】:2013-03-11 10:36:14
【问题描述】:
我的问题的简明版本是这样的: 我如何响应
上的模糊事件<h:inputText>
获取相同的值以显示在一个
<h:outputText>
位于 inputText 字段范围之外。
inputtext 字段具有以下 xpath:
//*[@id="form:j_idt40:src_table:0:j_idt137"]
输出文本位于此处:
//*[@id="form:j_idt40:target_table:0:target_id"]
我正在使用 primefaces 数据表,两条路径位于两个单独的数据表中
输入字段的jsf代码如下:
<p:dataTable id="src_table">
<p:column id="src_id" headerText="srcHeader">
<h:inputText value="#{bean.myAttribute}">
<f:ajax event="blur" render="src_id WHAT_SHOULD_GO_HERE?" ></f:ajax>
</h:inputText>
</p:column>
</p:datatable>
输出代码如下
<p:dataTable id="target_table">
<p:column headerText="TargetHeader">
<h:outputText id="target_id" value="#{bean.myAttribute}" />
</p:column>
</p:datatable>
我在 WHAT_SHOULD_GO_HERE 上尝试了几条路径?占位符,但我似乎无法正确处理。他们最终都抛出了如下面的异常:
javax.faces.FacesException: <f:ajax> contains an unknown id ':target_id' - cannot locate it in the context of the component j_idt137
这当然是我替换 WHAT_SHOULD_GO_HERE 的时候?与 :target_id
我也试过了:
form:j_idt40:target_table:0:target_id,
:form:j_idt40:target_table:0:target_id
但没有运气。
谁能帮助我理解 xpath 甚至 f:ajax 以及渲染视图的特定部分?
【问题讨论】:
-
伙计,我不知道用普通的 JSF 是否可行...你不能只渲染整个
target_table吗? -
@elias 是的,这就足够了,知道如何实现吗?
-
在 f:ajax 中使用
render="src_id :form:target_table"就足够了。 -
几乎做到了。我需要完整路径:form:j_idt40:target_table
-
酷,很高兴你解决了它! :)