У меня есть компонент Controller (SearchController), который имеет два управляемых компонента в качестве управляемых свойств (SearchCriteria, SearchResults, оба из которых относятся к сеансу).JSF - Обновление значений модели в контроллере Bean
Когда пользователь нажимает кнопку поиска, метод действия, который выполняется, находится в SearchController.
У управляемого компонента SearchCreteria есть метод под названием search(). Этот метод возвращает новый объект SearchResults. В контроллере bean я устанавливаю свойство searchResults для управления этим новым объектом SearchResults. Объект searchResults содержит то, что я ожидаю во время этого запроса, но объект не сохраняется в управляемом компоненте.
Я понимаю, что я меняю объект, на который ссылаются поисковые запросы, но я не понимаю, почему JSF не обновляет модель для использования нового объекта. Любые идеи, что мне не хватает или не понимаю? Я использую JSF 1.1 в WebSphere 6.1.
Если я поместил метод поиска в управляемый компонент SearchResults, он будет работать.
Линия в SearchController.find(), которая закомментирована, является той, которая в настоящее время работает.
public class SearchController {
SearchCriteria searchCriteria;
SearchResults searchResults;
ResultsBacking resultsBacking;
public String find()
{
setSearchResults(searchCriteria.search());
// searchResults.findSearchResults(searchCriteria);
if (!searchResults.resultsFound())
{
return "noresults";
}
return "success";
}
public class SearchCriteria {
public SearchResults search()
{
SearchDAO sdao = new SearchDAO();
ArrayList<Group> list = (ArrayList<Group>)sdao.findGroups(this);
SearchResults searchResults = new SearchResults();
searchResults.setSearchResults(list);
return searchResults;
}
}
public class SearchResults {
List<Group> searchResults;
public void findSearchResults(SearchCriteria criteria)
{
SearchDAO sdao = new SearchDAO();
this.setSearchResults(sdao.findGroups(criteria));
}
}
Это действительно трудно, чтобы помочь, не видя кода в вопросе ... – kgrad
Я согласен, что трудно представить себе проблему без каких-либо фрагментов. Проверьте мой ответ, я опубликовал фрагмент примера. Посмотрите, правда ли это. – BalusC