JSF系列教程(二) 动手编写第一个JSF DEMO程序

先看看应用程式开发人员要作些什麽事,我们撰写一个简单的JavaBean:

UserBean.java

package onlyfun.caterpillar;

public class UserBean {
    private String name;

    public void setName(String name) {
        this.name = name;

} public String getName() {
        return name;
    }
}

 

这个Bean将储存使用者的名称,编译好之后放置在/WEB-INF/classes下。

  接下来设计页面流程,我们将先显示一个登入网页/pages/index.jsp,使用者填入名称并送出表单,之后在/pages/welcome.jsp中显示Bean中的使用者名称与欢迎讯息。

  为了让JSF知道我们所设计的Bean以及页面流程,我们定义一个/WEB-INF/faces-config.xml:

faces-config.xml

<?xml version="1.0"?>
 <!DOCTYPE faces-config PUBLIC
 "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
 "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">

 <faces-config>
    <navigation-rule>
        <from-view-id>/pages/index.jsp</from-view-id>
        <navigation-case>
            <from-outcome>login</from-outcome>
            <to-view-id>/pages/welcome.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>

 

 在<navigation-rule>中,我们定义了页面流程,当请求来自<from-view- id>中指定的页面,并且指定了<navigation-case>中的<from-outcome>为login时,则会将请求导向至<to-view-id>所指定的页面。

  在<managed-bean>中我们可以统一管理我们的Bean,我们设定Bean物件的存活范围是session,也就是使用者开启浏览器与程式互动过程中都存活。

  接下来要告诉网页设计人员的资讯是,他们可以使用的Bean名称,即<managed-bean-name>中设定的名称,以及上面所定义的页面流程。

首先网页设计人员撰写index.jsp网页:

index.jsp

 

我们使用了JSF的core与html标籤库,core是有关于UI元件的处理,而html则是有关于HTML的进阶标籤。

  <f:view>与<html>有类似的作用,当您要开始使用JSF元件时,这些元件一定要在<f: view>与</f:view>之间,就如同使用HTML时,所有的标籤一定要在<html>与< /html>之间。

  html标籤库中几乎都是与HTML标籤相关的进阶标籤,<h:form>会产生一个表单,我们使用<h: inputText>来显示user这个Bean物件的name属性,而<h:commandButton>会产生一个提交按钮,我们在action属性中指定将根据之前定义的login页面流程中前往welcome.jsp页面。

  网页设计人员不必理会表单传送之后要作些什麽,他只要设计好欢迎页面就好了:

welcome.jsp

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@page contentType="text/html;charset=Big5"%>
<html>
<head>
<title>第一个JSF程式</title>
</head>
<body>
    <f:view>
        <h:outputText value="#{user.name}"/> 您好!
        <h3>欢迎使用 JavaServer Faces!</h3>
    </f:view>
</body>
</html>

 

这个页面没什麽需要解释的了,如您所看到的,在网页上没有程式逻辑,网页设计人员所作的就是遵照页面流程,使用相关名称取出资料,而不用担心实际上程式是如何运作的。

  接下来启动Container,连接上您的应用程式网址,例如:http://localhost:8080/jsfDemo/pages/index.faces,填入名称并送出表单,您的欢迎页面就会显示了。

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@page contentType="text/html;charset=Big5"%>
<html>
<head>
<title>第一个JSF程式</title>
</head>
<body>
    <f:view>
        <h:form>
            <h3>请输入您的名称</h3>
            名称: <h:inputText value="#{user.name}"/><p>
            <h:commandButton value="送出" action="login"/>
        </h:form>
    </f:view>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值