Вы никоим образом не используете JSF - это обычная HTML-страница, которая вызывает JSP (которая не содержит тегов JSF).
Чтобы переформулировать страницу входа в систему как JSF JSP, вы можете написать что-то вроде этого:
<?xml version="1.0" encoding="UTF-8" ?><jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"><jsp:directive.page
language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" /><jsp:text><![CDATA[<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ]]>
</jsp:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<f:view>
<h:form>
user: <h:inputText value="#{idhandler.username}" /><br />
pw: <h:inputText value="#{idhandler.password}" /><br />
<h:commandButton value="login" action="#{idhandler.validateUser}" />
</h:form>
</f:view>
</body>
</html>
</jsp:root>
Это определяет представление JSF с элементом управления формы, который содержит два элемента управления вводом текста и кнопку. Входы и кнопка привязаны к управляемому бину. Управляемый компонент может выглядеть так:
public class LoginManager {
private String username;
private String password;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
public String validateUser() {
// TODO: check login details
boolean authenticated = true;
return authenticated ? "goProcessUserInfo" : "errorPage";
}
}
Возвращаемое значение метода validateUser
используется для сопоставления <from-outcome>
случая навигации. Управляемый компонент будет определен в вашем faces-config.xml
:
<managed-bean>
<managed-bean-name>idhandler</managed-bean-name>
<managed-bean-class>dsassignment1java.LoginManager</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
К сведению: при написании приложений JSF вы сводите к минимуму использование любых стандартных действий (теги jsp:...
в пространстве имен http://java.sun.com/JSP/Page
), обычно избегаете тегов JSTL (теги <c:...
в пространствах имен http://java.sun.com/jsp/jstl/...
) и никогда не используйте скриптлеты (<% ... %>
код, встроенный в представление).
Подробнее см. JavaServer Faces учебника JEE5 .