Действие Commandlink и странное поведение @viewscoped - PullRequest
0 голосов
/ 10 августа 2011

У меня есть некоторый код, сгенерированный мастером netbeans «Страницы JSF из классов сущностей». Для тех, кто не использует NetBeans, я кратко опишу, что делает мастер. Он создает JSF-страницу List.xhtml, которая содержит таблицу данных с фиксированным размером в десять строк и две командные ссылки для прокрутки ее содержимого (пред. 10 и след. 10). Страница JSF использует управляемый боб с областью действия сеанса, и вышеупомянутые командные ссылки возвращают строку «Список». Если я изменяю область действия управляемого компонента на @viewscoped, он создается заново каждый раз, когда я нажимаю на командную ссылку. По моему мнению, это странное поведение, потому что представление на самом деле не меняется (это всегда List.xhtml), и я бы ожидал механизм разумной области видимости.

Затем я изменил действие, связанное с командными ссылками, на новое, которое делает то же самое, но возвращает void. Теперь механизм @viewscope работает хорошо, но я не уверен, что правильно использовать метод действия с такой подписью

public void doSomething()
// instead of
public String doSomething()

Меня беспокоит то, что другая реализация JSF может действовать непредсказуемым образом при таких действиях.

Спасибо Филиппо

1 Ответ

0 голосов
/ 10 августа 2011

Что вы вернете в public String doSomething()?

Если вы возвращаете ноль (или пустую строку), он не должен воссоздавать представление.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...