2015-03-18 1 views
0

следующие работы, как и следовало ожидать, только тогда, когда происходит щелчок-событие:метод Bean в OnClick увольняют по оказанию

<a onclick="alert('test')"/> 

, но это уже называется в то время как страницы рендеринга:

<a onclick="#{bean.someMethod()}" /> 

Почему это метод bean, называемый при рендеринге?

ответ

3

onclick ожидает функцию javascript, а не выражение метода. #{bean.someMethod()} должен быть разрешен к некоторой строке (alert('test') в вашем примере), когда страница отображается, поэтому она вызывается. <a onClick="#{bean.someMethod()}" /> имеет смысл только в том случае, если someMethod() возвращает строку, которая является действительным кодом javascript.

Это не следует путать с атрибутом JSF action, например <h:commandButton action="#{bean.someMethod()}", который вызывается при нажатии кнопки.

+0

в контексте вопроса, возможно, лучше изменить пример 'h: commandButton' на' h: commandLink'. – Kukeltje

+0

Может быть, но я не думаю, что это так важно, поскольку в качестве примера можно было указать на все компоненты источника действия. –

+0

Я знаю, это неважно, было просто небольшое предложение – Kukeltje

Смежные вопросы