<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 15,  comments - 5,  trackbacks - 0

            從昨天晚上到現(xiàn)在,終于在自己的瀏覽器上完成了自己的第一個(gè)JSF程序,暈哦!終于明白很多東西要親手實(shí)現(xiàn)才能完成,書上有一些是不會(huì)提到的,寫完的時(shí)候都是報(bào)錯(cuò)。再返回去看書上的,沒(méi)錯(cuò)啊!一步一步做的,沒(méi)辦法,今天在網(wǎng)上到處找問(wèn)題的原因。呵呵!經(jīng)過(guò)千辛萬(wàn)苦,終于搞定了。把代碼和部署的過(guò)程帖上來(lái),希望各位大俠多多指點(diǎn)。由于我的英語(yǔ)不太好,很多東西翻譯不準(zhǔn)確,我就用原文中的英語(yǔ)表示,希望大家原諒。
    有點(diǎn)懶,直接把myfaces里的myfaces-blank-example.war拷貝到$TOMCAT_HOME\webapps的主目錄下,把目錄名改成hello。
    在里面生成兩個(gè)jsp文件,一個(gè)是hello.jsp,另一個(gè)是goodbye.jsp。
    hello.jsp的結(jié)構(gòu):
    1.在頁(yè)面的最上面用綠色顯示Welcome to JavaServer Face!
    2.一個(gè)message taglib,當(dāng)提交的表單數(shù)據(jù)不合法時(shí)顯示錯(cuò)誤信息
    3.一個(gè)含有text box的表單(輸入的數(shù)據(jù)必須是1到500才會(huì)提交)
    4.儲(chǔ)存你最后一次提交的數(shù)據(jù)在JavaBean的numControls里
    5.在Text的下面有一個(gè)Grid,用于顯示從0到numControls-1的數(shù)
    6.一個(gè)Redisplay按鈕,用于提交表單
    7.一個(gè)Goodbye按鈕,用于顯示goodbye.jsp
    goodbye.jsp的結(jié)構(gòu)如下:
    1.在頁(yè)面的最上面用綠色顯示Goodbye!
    2.下面顯示JavaBean里的numControls的值
    另外,我們當(dāng)然還需要一個(gè)JavaBean文件,So,新建一個(gè)HelloBean文件,代碼如下

     1package com.gem.hello;
     2
     3import javax.faces.application.Application;
     4import javax.faces.component.html.HtmlOutputText;
     5import javax.faces.component.html.HtmlPanelGrid;
     6import javax.faces.context.FacesContext;
     7import javax.faces.event.ActionEvent;
     8
     9import java.util.List;
    10
    11public class HelloBean {
    12   private int numControls;
    13   private HtmlPanelGrid controlPanel;
    14   
    15   public int getNumControls() {
    16      return numControls;
    17   }

    18   public void setNumControls(int numControls) {
    19      this.numControls = numControls;
    20   }

    21   public HtmlPanelGrid getControlPanel() {
    22      return controlPanel;
    23   }

    24   public void setControlPanel(HtmlPanelGrid controlPanel) {
    25      this.controlPanel = controlPanel;
    26   }

    27   
    28   public void addControls(ActionEvent actionEvent) {
    29      Application application = FacesContext.getCurrentInstance().getApplication();
    30      List children = controlPanel.getChildren();
    31      children.clear();
    32      for (int count = 0; count < numControls; count++{
    33         HtmlOutputText output = (HtmlOutputText)application.
    34                                  createComponent(HtmlOutputText.COMPONENT_TYPE);
    35         output.setValue(" " + count + " ");
    36         output.setStyle("color: blue");
    37         children.add(output);
    38      }

    39   }

    40   
    41   public String goodbye() {
    42      return "success";
    43   }

    44}


    用ant把它編譯了,ant的使用這里就不再重復(fù),網(wǎng)上很多,這方面的資料。記得把jsf-api.jar和jsf-impl.jar加在compile.classpath里就好:)
    新建一個(gè)jsp文件,hello.jsp
    代碼如下:
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>

     1<%@?page?contentType="text/html;charset=UTF-8"?language="java"?%>
     2<%@?taglib?uri="http://java.sun.com/jsf/html"?prefix="h"?%>
     3<%@?taglib?uri="http://java.sun.com/jsf/core"?prefix="f"?%>
     4
     5
     6<f:view>
     7  <html>
     8   <head>
     9    <title>
    10     helloWorld!
    11    </title>
    12   </head>
    13   <body>
    14      <h:form id="WelcomeForm">
    15     <h:outputText id="WelcomeOutput"
    16        value="Welcome to JavaServer Face!"
    17        style="font-family: Arial, sans-serif; font-size: 24;
    18        color: green;"/>
    19     <p>
    20      <h:message id="errors" for="helloInput" style="color: red"/>
    21     <p>
    22     <p>
    23      <h:outputLabel for="helloInput">
    24       <h:outputText id="helloInputLabel"
    25          value="Enter number of controls to display:"/>
    26      h:outputLabel>
    27      <h:inputText id="helloInput" value="#{helloBean.numControls}"
    28                    required="true">
    29         <f:validateLongRange minimum="1" maximum="500"/>
    30       h:inputText>
    31     <p>
    32     <p>
    33      <h:panelGrid id="controlPanel"
    34                  binding="#{helloBean.controlPanel}"
    35                  columns="20" border="1" cellspacing="0"/>
    36     <p>
    37     <h:commandButton id="redispalyCommand" type="submit"
    38                     value="Redisplay"
    39                     actionListener="#{helloBean.addControls}"/>
    40     <h:commandButton id="goodbyeCommand" type="submit" value="Goodbye"
    41                     action="#{helloBean.goodbye}" immediate="true"/>
    42     </h:form>
    43   </body>
    44  </html>
    45</f:view>

    里面的taglib的功能我就不介紹了,自己看sun公司的文檔,免得翻譯不好,誤人子弟啊!
    接著新建一個(gè)goodbye.jsp文件,代碼如下:
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     1<%@?page?contentType="text/html;charset=UTF-8"?language="java"?%>
     2<%@?taglib?uri="http://java.sun.com/jsf/html"?prefix="h"?%>
     3<%@?taglib?uri="http://java.sun.com/jsf/core"?prefix="f"%>
     4
     5<f:view>
     6 <html>
     7  <head>
     8   <title>
     9    JFC - hello world!
    10   </title>
    11  </head>
    12  <body>
    13   <h:form id="goodbyeForm">
    14    <p>
    15     <h:outputText id="welcomeOutput" value="Goodbye!"
    16                        style="font-family: Arial, sans-serif; font-size: 24;
    17                        font-style: bold; color: green;"/>
    18    <p>
    19    <p>
    20     <h:outputText id="helloBeanOutputLabel"
    21                  value="Number of controls displayed: "/>
    22      <h:outputText id="helloBeanOutPut"
    23                   value="#{helloBean.numControls}"/>
    24    <p>
    25   </h:form>
    26  </body>
    27 </html>
    28</f:view>

    現(xiàn)在配置web.xml文件和config文件
    web.xml文件的代碼如下:
     1<?xml version="1.0" encoding="UTF-8"?>
     2
     3<!DOCTYPE web-app PUBLIC
     4  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     5  "http://java.sun.com/dtd/web-app_2_3.dtd">
     6
     7<web-app>
     8
     9    <context-param>
    10        <param-name>javax.faces.CONFIG_FILESparam-name>
    11        <param-value>
    12            /WEB-INF/examples-config.xml
    13        param-value>
    14        <description>
    15            Comma separated list of URIs of (additional) faces config files.
    16            (e.g. /WEB-INF/my-config.xml)
    17            See JSF 1.0 PRD2, 10.3.2
    18        description>
    19    context-param>
    20
    21
    22    
    23    <servlet>
    24        <servlet-name>Faces Servletservlet-name>
    25        <servlet-class>javax.faces.webapp.FacesServletservlet-class>
    26        <load-on-startup>1load-on-startup>
    27    servlet>
    28
    29    <servlet-mapping>
    30        <servlet-name>Faces Servletservlet-name>
    31        <url-pattern>*.jsfurl-pattern>
    32    servlet-mapping>
    33
    34    
    35    <welcome-file-list>
    36        <welcome-file>index.jspwelcome-file>
    37    welcome-file-list>
    38    
    39    
    40    <jsp-config>
    41    <taglib>
    42      <taglib-uri>http://java.sun.com/jsf/coretaglib-uri>
    43      <taglib-location>/WEB-INF/lib/jsf_core.tldtaglib-location>
    44    taglib>
    45    <taglib>
    46      <taglib-uri>http://java.sun.com/jsf/htmltaglib-uri>
    47      <taglib-location>/WEB-INF/lib/html_basic.tldtaglib-location>
    48    taglib>
    49   jsp-config>
    50web-app>

    由于我用的是空模板,所以對(duì)于config文件我沒(méi)改名,examples-config.xml
    的代碼如下:
     1xml version="1.0" encoding="UTF-8"?>
     2DOCTYPE faces-config PUBLIC
     3  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
     4  "http://java.sun.com/dtd/web-facesconfig_1_0.dtd" >
     5
     6<faces-config>
     7 
     8 
     9 <managed-bean>
    10  <managed-bean-name>helloBeanmanaged-bean-name>
    11  <managed-bean-class>com.gem.hello.HelloBeanmanaged-bean-class>
    12  <managed-bean-scope>sessionmanaged-bean-scope>
    13 managed-bean>
    14 
    15 
    16 <navigation-rule>
    17  <from-view-id>/hello.jspfrom-view-id>
    18  <navigation-case>
    19   <from-outcome>successfrom-outcome>
    20   <to-view-id>/goodbye.jspto-view-id>
    21  navigation-case>
    22 navigation-rule>
    23 faces-config>
     
    還有就是記得把jstl.jar文件放在lib目錄下,要不然會(huì)報(bào)錯(cuò)。如果機(jī)子上沒(méi)有,就去sun的網(wǎng)站上下,或者下一個(gè)spring,里面就有這個(gè)文件。
    好了,現(xiàn)在在瀏覽器里面輸入
    http://127.0.0.1:8080/hello/hello.jsf,就可以了。注意,是hello.jsf,不是hello.jsp哦!
    posted on 2005-08-27 19:41 MudFish 閱讀(466) 評(píng)論(1)  編輯  收藏 所屬分類: JSP

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲理论在线观看| 亚洲香蕉久久一区二区三区四区| 黑人大战亚洲人精品一区| 国产亚洲福利精品一区| 亚洲视频国产视频| 亚洲一区二区三区国产精华液| 亚洲av日韩精品久久久久久a| 免费一级毛片在线播放放视频 | MM131亚洲国产美女久久| 亚洲中文字幕日产乱码高清app| 亚洲AV日韩精品久久久久久久| 亚洲精品白色在线发布| 亚洲av第一网站久章草| 美女无遮挡拍拍拍免费视频| 亚洲黄色免费网址| 国产jizzjizz视频全部免费| 久久国产亚洲精品麻豆| 国产成人精品日本亚洲11| 成人免费网站久久久| 日本免费一区二区三区| 免费高清在线爱做视频| 亚洲午夜未满十八勿入网站2| 亚洲精品在线免费观看视频| 色天使色婷婷在线影院亚洲| 亚洲AV日韩AV一区二区三曲| 两个人看的www视频免费完整版| 国产精品久久久久久久久免费| 国产精品免费播放| 久久亚洲免费视频| 国产综合成人亚洲区| 一级特黄aa毛片免费观看| 小小影视日本动漫观看免费| 国产亚洲福利一区二区免费看| 亚洲国产日韩在线视频| 亚洲欧美日韩中文字幕在线一区| 国产性生大片免费观看性| 免费观看男人免费桶女人视频| 亚洲爆乳无码专区| 无码一区二区三区亚洲人妻| 最近免费最新高清中文字幕韩国| 亚洲av午夜成人片精品电影|