在
第一个JSF程序 中,我们简单的定义了页面的流程由 index.jsp 到 welcome.jsp,接下来我们扩充程序,让它可以根据使用者输入的名称与密码是否正确,决定要显示欢迎讯息或是将使用者送回原页面进行重新登入。
首先我们修改一下UserBean:
package onlyfun.caterpillar;
public class UserBean {
private String name;
private String password;
private String errMessage;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public void setErrMessage(String errMessage) {
this.errMessage = errMessage;
}
public String getErrMessage() {
return errMessage;
}
public String verify() {
if(!name.equals("justin") ||
!password.equals("123456")) {
errMessage = "名称或密码错误";
return "failure";
}
else {
return "success";
}
}
}
在UserBean中,我们增加了密码与错误讯息属性,在verify()方法中,我们检查使用者名称与密码,它传回一个字符串,"failure"表示登入错误,并会设定错误讯息,而"success"表示登入正确,这个传回的字符串将决定页面的流程。
接下来我们修改一下 faces-config.xml 中的页面流程定义:
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
"-
"http:>
<faces-config>
<navigation-rule>
<from-view-id>/pages/index.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/pages/welcome.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/pages/index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
根据上面的定义,当传回的字符串是"success"时,将前往 welcome.jsp,如果是"failure"的话,将送回 index.jsp。
接下来告诉网页设计人员Bean名称与相关属性,以及决定页面流程的verify名称,我们修改 index.jsp 如下:
<%@ taglib uri="http: prefix="f" %>
<%@ taglib uri="http: prefix="h" %>
<%@page contentType="text/html;charset=Big5"%>
<html>
<head>
<title>第一个JSF程序</title>
</head>
<body>
<f:view>
<h:form>
<h3>请输入您的名称</h3>
<h:outputText value="#{user.errMessage}"/><p>
名称: <h:inputText value="#{user.name}"/><p>
密码: <h:inputSecret value="#{user.password}"/><p>
<h:commandButton value="送出"
action="#{user.verify}"/>
</h:form>
</f:view>
</body>
</html>
当要根据verify运行结果来决定页面流程时,action属性中使用 JSF Expression Language "#{user.verify}",如此JSF就知道必须根据verify传回的结果来导航页面。
<h:outputText>可以取出指定的Bean之属性值,当使用者因验证错误而被送回原页面时,这个错误讯息就可以显示在页面上。
相关推荐
8. **Navigation**: JSF提供了导航规则,允许根据用户的动作或验证结果决定跳转到哪个页面。 9. **FacesServlet**: 这是JSF应用的核心Servlet,负责处理所有的JSF请求,并调用相应的生命周期阶段。 使用`jsf-api....
8. **Navigation**:JSF支持基于规则的导航,可以根据用户操作和业务逻辑决定页面跳转。 **license.txt** 文件通常包含软件的许可协议,对于`jsf-api.jar`来说,这可能指定了使用、修改和分发JSF API库的法律条款。...
**JSF2中Navigation的配置** JavaServer Faces (JSF) 是Java平台上的一个用于构建Web应用程序的MVC(Model-View-Controller)框架。在JSF2中,导航是控制用户请求流程的重要部分,它定义了用户在应用中如何从一个...
1. **导航规则**: - 导航规则定义了应用程序中页面间的跳转逻辑。在JSF中,导航规则可以是静态的或动态的。静态导航是预定义的,点击特定按钮总是跳转到固定页面。这通过`from-view-id`和`navigation-case`元素...
8. **Navigation**:JSF的导航系统可以根据动作结果决定跳转到哪个页面,提供了灵活的控制流程。 9. **FacesServlet**:JSF的核心Servlet,负责处理JSF的请求和响应。 在压缩包“jsf-1.2_04-b16-p02”中,包含的是...
### Tomahawk JSF Reference PDF概述 在JavaServer Faces (JSF)的生态系统中,《Tomahawk JSF Reference PDF》是一份重要的参考资料,为开发者提供了关于Tomahawk组件库的全面指南。这份文档包含了对Tomahawk标签库...
5. **页面导航**:`<navigation-rule>`元素定义了基于用户操作的页面跳转逻辑,`from-view-id`标识起始页面,`from-outcome`和`to-view-id`定义了从哪个方法返回结果后跳转到哪个页面。 总的来说,JSF框架通过`web....
综上所述,这个简单的JSF登录示例展示了如何配置`web.xml`和`faces-config.xml`,创建登录页面以及实现后端逻辑。通过学习这个案例,初学者可以理解JSF的基本工作原理,并逐步掌握更复杂的应用开发。
页面导航(02-Page-Navigation.pdf)** 在JSF中,页面导航是一种控制用户在应用程序中从一个页面移动到另一个页面的方式。JSF应用通常使用`faces-config.xml`文件定义导航规则,其中包含基于用户操作或特定条件的...
1. **Facelets**:JSF2默认的视图层技术是Facelets,它优于JSF1.x的JSP,提供了更清晰的代码结构和更好的可维护性。 2. **Managed Beans**:使用JSF Managed Beans来管理应用程序的业务逻辑。它们是JavaBeans组件,...
- **页面跳转**:登录成功后,JSF可以通过导航规则(Navigation Case)或`FacesContext`的`externalContext.redirect()`方法将用户重定向到其他页面。例如,登录成功后,用户可能被定向到主页面或个人中心。 **2. ...
- **Navigation Handler**: 处理导航逻辑,根据用户操作决定下一步跳转的页面。 - **Phase Listener**: 监听JSF生命周期的各个阶段,可用于自定义行为。 - **Converter和Validator**: 分别用于数据格式转换和验证...
本文通过一个简单的示例介绍了JSF的基本使用方法,包括环境搭建、关键配置文件的编写以及简单的登录流程实现。通过这个例子,初学者可以更好地理解JSF的工作原理及其实现机制。此外,还可以进一步探索JSF的高级特性...
- **faces-config.xml**:JSF的配置文件,用于定义页面导航规则、管理Bean的生命周期以及设置其他定制配置。例如,`<managed-bean>`标签用于声明和配置Bean,`<navigation-rule>`用于定义页面间的跳转逻辑。 JSF还...
8. **JSF 2.x的改进**:在JSF 2.x版本中,导航文件的使用变得更为灵活。你可以使用`@ManagedProperty`注解直接注入目标页面的URL,或者利用`FacesRedirect`类进行重定向。 9. **与PrimeFaces等组件库的结合**:如果...
<managed-bean-class>jsf1.CheckNumber</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> ``` - 在JSP页面中,可以使用EL(Expression Language)将Bean绑定到页面元素...