2013-07-19 5 views
0

Мне нужно выполнить метод поддержки боба с использованием <h:commandButton type="submit"> в следующем виде:я могу написать actionListner или действие для <ч: CommandButton типа = отправить>

<h:form id="login" prependId="false" onsubmit="document.getElementById('login').action='j_security_check';"> 

    <h:commandButton type="submit"> 

</h:form> 

Я попытался определить action, а также actionListner , однако метод бэк-компонента никогда не выполняется. Как я могу добиться этого?

ответ

0

Не удалось, поскольку вы изменили URL-адрес формы на URL-адрес, отличный от JSF. Этот URL-адрес никогда не попадает в FacesServlet и, следовательно, он не сможет декодировать, поставить в очередь и вызвать действие кнопки-кнопки. Избавьтесь от атрибута onsubmit (и желательно также prependId). Затем он подчиняется правильному URL-адресу JSF и вызывает действие кнопки-кнопки.

<h:form id="login"> 

Если вы намерены выполнить контейнер управляемый проверку подлинности с помощью JSF, а затем направиться к следующему ответу: Performing user authentication in Java EE/JSF using j_security_check, чтобы узнать, как использовать j_security_check должным образом без необходимости JSF кнопки команды действия, а также сделать это программно в метод действия кнопки командной строки JSF вместо попытки отправить прямо на j_security_check.

<h:commandButton type> по умолчанию уже к submit. Просто не повторяйте значения по умолчанию и не храните его в коде, чтобы он был коротким и чистым.