Попробуем сделать форму с кнопкой, по клику на которую можно перейти на другую форму.
Для этого в первом примере изменить index.jspx
так:
... <h:form> <h:commandButton action="hello" value="GO" /> </h:form> ...
И дописать в faces-config.xml:
... <navigation-rule> <from-view-id>/index.jspx</from-view-id> <navigation-case> <from-outcome>hello</from-outcome> <to-view-id>/hello.jspx</to-view-id> </navigation-case> </navigation-rule> ...
Создайте файл hello.jspx в папке jsf-helloworld:
<?xml version="1.0" encoding="UTF-8"?> <jsp:root xmlns:f="http://java.sun.com/jsf/core" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:h="http://java.sun.com/jsf/html" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.w3.org/1999/xhtml" version="2.0"> <f:view> <html> <body> <h:form> <h:outputText value="Hello, world!"/> </h:form> </body> </html> </f:view> </jsp:root>
Что здесь что:
<h:commandButton action="hello" value="GO" />
- кнопка с надписью "GO", при нажатии на которую будет осуществлён переход к странице, которая указана в конфиг-файле с outcome1) = hello<from-view-id>
- с какой страницы, <from-outcome>
- название outcome, <to-view-id>
- на какую странице надо перейти.
Конечный WAR-файл (1.7mb) (для JBoss'а, нужно просто положить в папку deploy
и любоваться результатом по ссылке http://localhost:8080/simple_navigation/index.jsf)