在尝试让多个commandButtons在表单上工作时,我遇到的问题是他们将参数列表添加到参数列表而不是仅发送一个参数。
代码如下所示:
<h:form>
<ui:repeat ...>
<p:commandButton value="Manage data" action="metadatainput"
ajax="false"
onclick="this.form.target='_blank'" onsuccess="this.form.target='_self'">
<f:param name="id"
value="#{item.id}" />
</p:commandButton>
</ui:repeat>
</h:form>
如果我点击两个不同的按钮,第二个呼叫的参数仍然是第一个发送的参数。如果我删除onclick-things(我在这里找到Open new window by POST using h:commandButton),这个问题就会消失,因为每次新的点击都需要在浏览器中“向后”,这会导致新加载参数。如果我仔细观察Firebug的问题,似乎两个参数都被发送 - 所以有两个字段,一个包含旧值,另一个包含较新的值。不幸的是,旧版本是由获取参数的页面获取的。不幸的是,在第二次点击中搜索'commandButton参数错误'这样的事情并不会带来有用的东西。
有没有办法让每个新打开的窗口都能正确参数?