Spring Web Flow - хранить параметр запроса в представлениях (страницах jsf)

Иметь конфигурацию перехода для Spring Web Flow:

<transition on="getFiles">
    <evaluate expression="searchService.getFiles(flowScope.searchCriteria, requestParameters.fileId)"
     result="viewScope.file" result-type="dataModel"/>
</transition>

Вызов метода searchService.getFiles(flowScope.searchCriteria, requestParameters.fileId) необходим в двух случаях:

1. получить файлы (произошло 1.xhtml)
2. отсортировать файлы (произошло 2.xhtml)

Проблема в том, что при сортировке (шаг 2) файлов requestParameters.fileId теряется.

Можно ли хранить fileId param cross 1.xhtml и 2.xhtml представлений?


person sergionni    schedule 14.03.2011    source источник


Ответы (1)


Не запрашивайте атрибут fileId с помощью параметра requestParameters. Объект requestParameters в основном представляет собой атрибуты запроса. Вы можете заметить, что вы установили файл как viewScope.file. Это означает, что в любом месте представления вы можете получить доступ к файлу соответственно. Существует ли viewScope.file.fileId?

Запрос теряется после первого перехода, альтернатива - можно попробовать прописать в flashScope.

Обновление на основе вашего комментария. Попробуйте сначала установить его во flash/viewScope.

Вы можете сделать это так

<transition on="getFiles">
    <set var="flashScope.fileId" value="requestParameters.fileId"/>
    <evaluate expression="searchService.getFiles(flowScope.searchCriteria, requestParameters.fileId)"
     result="viewScope.file" result-type="dataModel"/>
</transition>
person John Vint    schedule 14.03.2011
comment
viewScope.file - это список файлов, идентификаторы которых не связаны с requestParameters.fileId. Поэтому я попробую flashScope. - person sergionni; 15.03.2011
comment
спасибо за выпуск, еще одна проблема - моя версия JSF 1.2, применяется ли для нее flashScope? - person sergionni; 15.03.2011
comment
Flashscope — это свойство spring-webflow-2. Если вы не можете получить доступ к flashscope, вы можете управлять им из flowScope (flowScope охватывает время жизни всего потока) - person John Vint; 15.03.2011