JSF入门 二 页面导航

1. JSF的控制流程

    a. 由各种GUI组件构建的web表单显示给用户

    b. 这个表单被提交给自己

    c. 创建一个描绘表单数据的bean

    d. 在form中描述的action方法被调用

    e. action方法返回一个条件

    f.  相应于这个条件的页面返回给用户

2. 使用JSF开发的步骤

    a. 创建一个描绘表单数据的Bean

    b. 使用f:view和h:form来创建输入表单

    c. 用h:commandButton的 action属性来详细说明一个Action controller

    d. 创建一个Action controller来读取数据,调用业务逻辑,存储结果,返回一个和某结果页面相关的条件。

    e. 使用faces-config.xml来声明form bean和页面导航。

    f. 创建和每一条件相关联的jsp页面。

3. 事例1:静态导航

    a. 输入表单

 <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view>
<!DOCTYPE …>
<HTML>
<HEAD>…</HEAD>
<BODY>
<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">New Account Registration</TH></TR>
</TABLE>
<P>
<h:form>
Email address: <h:inputText/><BR>
Password: <h:inputSecret/><BR>
<h:commandButton value="Sign Me Up!" action="login"/>
</h:form>
</CENTER></BODY></HTML>
</f:view>

 b. 页面导航

<faces-config>
<navigation-rule>
<from-view-id>/login.jsp</from-view-id>
<navigation-case>
<from-outcome>login</from-outcome>
<to-view-id>/WEB-INF/…/result.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>

c. 说明

   由于是静态导航,所以h:commandButton中的action属性没有指明控制器中的方法,而是直间赋予了导航条件(from-outcome),因此当点击按钮后会直接转向result.jsp页面.(当然一般情况下应在action属性中指明控制器处理方法)

4. 事例2:动态导航

a. 输入表单

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view>

<h:form>
First name: <h:inputText/><BR>
Last name: <h:inputText/><BR>
...
<h:commandButton
value="Sign Me Up!"
action="#{loginAction.validate}"/>
</h:form>…
</f:view>

b. 控制器

public class LoginAction {
         public String validate() {
                 if (...) {
                        return "error";
                  }
                  else {
                        return "success";
                 }
          }
}

c. 导航

<faces-config>

<navigation-rule>

<managed-bean>
<managed-bean-name>
loginAction
</managed-bean-name>
<managed-bean-class>
net.boyce.LoginAction
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>

<from-view-id>/signup.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/WEB-INF/results/success.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>error</from-outcome>
<to-view-id>/WEB-INF/results/error.jsp</to-view-id>
</navigation-case>
</navigation-rule>

</faces-config>

d. 说明

  在action属性中指明了控制器,由控制器返回条件,再根据导航转到不同的结果页面。注意在action属性中指明的控制器方法是无输入参数,且返回String类的函数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值