новая страница вперед отображает старое значение - PullRequest
0 голосов
/ 10 марта 2012

Я новичок в Struts и получил сомнения.У меня есть страница, которая перенаправляет ее в файл .do, который, в свою очередь, вызывает страницу распорок.

Перечисленная выше страница переадресации вызывает следующую указанную страницу:

                    <display:table name="sessionScope.LocationLoadActionForm.loadList" class="dataTable" style="width:101%;"  id="row"  
                                   pagesize="5" cellspacing="0">


                        <display:column title="<input type='checkbox' name='selectall' id='selectall' value='all'/>">
                            <html:checkbox styleClass="case" name="LocationLoadActionForm" property="id" value="${row.locid}"/>
                        </display:column>

                        <display:column property="locid"  title="Location ID" media="html" />
                        <display:column property="locname" title="Location Name"  group="1" sortable="true"/>
                        <display:column property="loc_city" title="Location City" group="2" sortable="true"  />

                        <display:setProperty name="paging.banner.full">
                            <div class="pagelinks" align="right"> [<a href="{1}">First</a>/ <a href="{2}">Prev</a>] {0} [ <a href="{3}">Next</a>/ <a href="{4}">Last </a>]</div>
                        </display:setProperty>
                        <display:setProperty name="paging.banner.first">
                            <div class="pagelinks" align="right"> [First/Prev] {0} [ <a href="{3}">Next</a>/ <a href="{4}">Last</a>] </div>
                        </display:setProperty>
                        <display:setProperty name="paging.banner.last">
                            <div class="pagelinks" align="right">[ <a href="{1}">First</a>/ <a href="{2}">Prev</a>] {0} [Next/Last] </div>
                        </display:setProperty>
                        <display:setProperty name="paging.banner.onepage">
                            <div class="pagelinks" align="right"> {0} </div>
                        </display:setProperty>

                        <display:setProperty  name="paging.banner.all_items_found" value="" />
                        <display:setProperty  name="paging.banner.some_items_found" value="" />
                        <display:setProperty  name="paging.banner.one_item_found" value="" />



                    </display:table>

Теперь есть кнопка, которая перенаправляет на страницу удаления и перенаправляет ее в Locationload.do.Теперь, когда я выполняю операцию удаления, хотя моя запись удаляется из базы данных, однако на displaytag отображается старое значение.Как решить проблему.

Подробности файла конфигурации Struts:

    <form-bean name="LocationDetailAddActionForm" type="Location.LocationDetailAddActionForm"/>
    <form-bean name="LocationLoadActionForm" type="Location.LocationLoadActionForm"/>
    <form-bean name="CountryActionForm" type="Country.CountryActionForm"/>
    <form-bean name="LocationActionForm" type="Location.LocationActionForm"/>
    <form-bean name="OrganizationActionForm" type="Organization.OrganizationActionForm"/>

</form-beans>

<global-exceptions>

</global-exceptions>



<action-mappings>

    <action input="/" name="OrganizationActionForm" path="/addOrganizationGeneral" scope="session" type="Organization.OrganizationAction">
        <forward name="success" path="/Administrator/OrganizationDetail.jsp"/>
    </action>

    <action input="/" name="CountryActionForm" path="/addCountry" scope="session" type="Country.CountryAction">
        <forward name="success" path="/Administrator/Country.jsp"/>
        <forward name="validate" path="/Administrator/Country_validate.jsp"/>
    </action>

    <action input="/" name="LocationActionForm" path="/addLocation" scope="session" type="Location.LocationAction">
        <forward name="success" path="/Administrator/AdminLocation/LocationDetail.jsp"/>
    </action>

    <action input="/" name="LocationLoadActionForm" path="/LocationLoad" scope="session" type="Location.LocationLoadAction">
        <forward name="success" path="/Administrator/AdminLocation/LocationDetail.jsp"/>
    </action>

    <action input="/" name="LocationDetailAddActionForm" path="/LocationAdd" scope="session" type="Location.LocationDetailAddAction">
        <forward name="success" path="/Administrator/AdminLocation/Location.jsp"/>
    </action>

    <action input="/" name="LocationLoadActionForm" path="/LocationDelete" scope="session" type="Location.LocationDeleteAction">
         <forward name="success" path="/Administrator/AdminLocation/LocationDelete.jsp"/>
    </action>


</action-mappings>

1 Ответ

1 голос
/ 10 марта 2012

Дисплей тег отображает список значений, которые вы говорите, чтобы показать.Если значение dsplayed, это означает, что оно все еще находится в списке.Возможно, вы удалили элемент из базы данных, но забыли удалить его из списка, сохраненного в сеансе и отображенного в таблице:

sessionScope.LocationLoadActionForm.loadList

Сеанс следует использовать для хранения объектов, которые имеют сеанс жизни.время (имя пользователя, корзина покупок и т. д.). Если вы использовали запрос для сохранения списка данных для отображения в таблице, вы бы потратили меньше памяти и не рискнули бы отображать устаревшие значения, как сейчас.Struts предпочел использовать формы действий в рамках сеанса по умолчанию с самого начала, и это был очень плохой выбор.Убедитесь, что по умолчанию используются бины формы в области запроса.

...