如何在JSF中完全回发到同一页面

时间:2013-07-03 22:22:18

标签: java jsf

我有一个可以链接到参数的页面......当你在页面中时,你可以从数据表中选择一个项目 - 我希望能够从中回发同一个页面完全重定向,以便重写查询参数。

此刻,当我回发到同一页面时,它似乎总是被视为部分回发,因为回发来自当前页面。如何完全重定向到同一页面,或者是否无法覆盖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

2 个答案:

答案 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>