我有一个可以链接到参数的页面......当你在页面中时,你可以从数据表中选择一个项目 - 我希望能够从中回发同一个页面完全重定向,以便重写查询参数。
此刻,当我回发到同一页面时,它似乎总是被视为部分回发,因为回发来自当前页面。如何完全重定向到同一页面,或者是否无法覆盖URL中的参数。
我可以在没有完全刷新的情况下打开项目,但是如果他们通过另一个页面进入页面,那么URL中有参数...稍后刷新时,它会从参数中提取原始数据。
这是在我的数据表中,它放在我重定向到的同一页面中。我尝试过结果和行动......!
<f:facet name="footer">
<p:commandButton id="openMyTask" value="Open Task" icon="ui-icon-search" action="/pages/customer/customerTasks?includeViewParams=false;faces-redirect=true" >
<f:param name="admsTaskId" value="#{customerTaskBean.selectedTaskId}"></f:param>
</p:commandButton>
</f:facet>
非常感谢
SM
答案 0 :(得分:1)
如果您想在网址中使用查询字符串重新显示同一页面,请use p:button
。
<f:facet name="footer">
<p:button id="openMyTask" includeViewParams="true" value='Open Task'>
<f:param name='admsTaskId' value='#{customerTaskBean.selectedTaskId}'/>
</p:button>
</f:facet>
includeViewParams="true"
确保您包含从上一页发送的参数。
第二行是覆盖这些值。如果您想要覆盖更多值,则包含更多f:param
。
另请注意,我没有指定outcome
。由于您希望返回到同一页面,因此在这种情况下未指定outcome
时会这样做。
注意:根据您的回答判断,我认为您不会尝试回发。正如BalusC从评论中所说的那样:“a”postback“是对同一URL的POST请求,其中请求的页面为”。
答案 1 :(得分:0)
这似乎有效:
<p:dataTable id="myTasks" value
="#{customerTasksBean.customerTasks}" var="task" selectionMode="single" rowKey="#{task.id}"
paginator="true" rows="20" paginatorTemplate="{PageLinks} {RowsPerPageDropdown}" rowsPerPageTemplate="10,20,30"
editable="false" rowStyleClass="#{customerTasksBean.taskStatusService.getTaskRowClass(task)}">
<p:ajax event="rowSelect" listener="#{customerTasksBean.onMyTaskSelect}" update="openTask" />
<f:facet name="header">
Current Request Pool
</f:facet>
<p:column headerText="Task ID" sortBy="#{task.id}">
<h:outputText value="#{task.id}" />
</p:column>
<p:column headerText="Task Type" sortBy="#{task.type.toString()}">
<h:outputText value="#{task.type.toString()}" />
</p:column>
<p:column headerText="Created For" sortBy="#{task.createdFor.fullName}">
<h:outputText value="#{task.createdFor.fullName}" />
</p:column>
<p:column headerText="Submitted" sortBy="#{task.createdDate}">
<h:outputText value="#{task.createdDate}">
<f:convertDateTime pattern="dd/MM/yyyy hh:mm" />
</h:outputText>
</p:column>
<p:column headerText="Required By" sortBy="#{task.requiredByDate}">
<h:outputText value="#{task.requiredByDate}">
<f:convertDateTime pattern="dd/MM/yyyy hh:mm" />
</h:outputText>
</p:column>
<p:column headerText="Days to completion" sortBy="#{aDMSBean.taskRequiredDays(task)}">
<h:outputText value="#{myTasksBean.taskStatusService.getDaysLeftToTaskCompletion(task)} " />
</p:column>
<p:column headerText="Comment">
<h:outputLabel id="taskCustomerComment" value="Hover mouse over" />
<p:tooltip for="taskCustomerComment" value="#{task.customerComment}" />
</p:column>
<f:facet name="footer">
<p:button id="openTask" value="Open Task" icon="ui-icon-search"
outcome="/pages/customer/customerTasks?includeViewParams=false;faces-redirect=true">
<f:param name="admsTaskId" value="#{customerTasksBean.selectedTaskId}">
</f:param>
</p:button>
</f:facet>
</p:dataTable>