2009-03-16 8 views
11

Как реализовать обратную кнопку в качестве командной кнопки, которая работает повсеместно? с кнопкой «Назад» я не имею в виду кнопку «браузер», а скорее кнопку, которая находится где-то на странице. не всегда возможно использовать шаблон Post-redirect-get.back commandbutton in jsf

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

Возможно ли зарезервированное ключевое слово для правила навигации, которое указывает на применяемое последнее правило навигации?

ответ

15

В этом случае я использую h:commandLink с атрибутом onclick="history.go(-1)". Он работает повсеместно.

+1

Надеюсь, это поможет мне, но, похоже, не работает с h: commandButton. :-( –

+3

Вам действительно нужно использовать тег jsf для этого? Если нет, попробуйте с кнопкой . Это будет работать. – alexmeia

+0

Кажется, обновить текущую страницу, которая больше не отображается, поэтому любые ManagedProperties получат исключения из null-указателей. Любые идеи, как предотвратить это? –

3

Моя первая мысль:

на каждом

<h:commandLink .....> 

и т.д.; сохраните навигационную строку в компоненте или даже в стеке, а затем нажмите кнопку возврата назад и просто верните это в соответствии с лицами-config.xml

Вторая идея.

Но при отражении вы должны переопределить или использовать фильтр, чтобы перехватывать навигационные команды и нажимать их на стек. Затем кнопка «Назад» может просто выпустить навигацию и прочь.

1

Я бы сохранил навигационную строку в виде данных стека, и вы используете stack.peek(), чтобы показать, какой сайт находится за вами, и когда его щелкнул, вы запускаете событие действия, которое запускает stack.pop()

1

Вы можете использовать:

<p:commandButton onclick="window.history.back();"/> 

Это инструкция сделать то же самое, как onclick="history.go(-1)", который alexmeia сказал.

+0

Плохой способ использования commandButton. Или используйте кнопку «p: button» или add «type =». См. документацию PrimeFaces для этого! – Kukeltje