Чтобы заменить стандартную форму входа в систему безопасности Spring, я предложил следующее решение:
<form name="f" action="../j_spring_security_check" method="POST" >
<h:panelGrid columns="2">
<h:outputText value="Username" />
<h:inputText id="j_username" />
<h:outputText value="Password" />
<h:inputText id="j_password" />
</h:panelGrid>
<h:commandButton value="Login" />
</form>
Но вместо простого тега <form>
я бы хотел использовать <h:form>
, поскольку компоненты Primefaces работают только в <h:form>
. При использовании <h:form>
действие формы будет автоматически установлено JSF для текущей страницы, а не для значения, установленного мной в примере выше. Где мне теперь кодировать действие "../j_spring_security_check"
? Я попытался поместить его в <h:commandButton>
следующим образом, но это не работает:
<h:form name="f">
<h:panelGrid columns="2">
<h:outputText value="Username" />
<h:inputText id="j_username" />
<h:outputText value="Password" />
<h:inputText id="j_password" />
</h:panelGrid>
<h:commandButton value="Click here" action="../j_spring_security_check" />
</form>
Это приводит к сообщению об ошибке Unable to find matching navigation case with from-view-id '/login.xhtml' for action '../j_spring_security_check' with outcome '../j_spring_security_check'
.
Это единственный способ определить регистр навигации в faces-config.xml
? Я хочу избежать использования bean-компонента для этого простого варианта использования.