<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

            從昨天晚上到現在,終于在自己的瀏覽器上完成了自己的第一個JSF程序,暈哦!終于明白很多東西要親手實現才能完成,書上有一些是不會提到的,寫完的時候都是報錯。再返回去看書上的,沒錯啊!一步一步做的,沒辦法,今天在網上到處找問題的原因。呵呵!經過千辛萬苦,終于搞定了。把代碼和部署的過程帖上來,希望各位大俠多多指點。由于我的英語不太好,很多東西翻譯不準確,我就用原文中的英語表示,希望大家原諒。
    有點懶,直接把myfaces里的myfaces-blank-example.war拷貝到$TOMCAT_HOME\webapps的主目錄下,把目錄名改成hello。
    在里面生成兩個jsp文件,一個是hello.jsp,另一個是goodbye.jsp。
    hello.jsp的結構:
    1.在頁面的最上面用綠色顯示Welcome to JavaServer Face!
    2.一個message taglib,當提交的表單數據不合法時顯示錯誤信息
    3.一個含有text box的表單(輸入的數據必須是1到500才會提交)
    4.儲存你最后一次提交的數據在JavaBean的numControls里
    5.在Text的下面有一個Grid,用于顯示從0到numControls-1的數
    6.一個Redisplay按鈕,用于提交表單
    7.一個Goodbye按鈕,用于顯示goodbye.jsp
    goodbye.jsp的結構如下:
    1.在頁面的最上面用綠色顯示Goodbye!
    2.下面顯示JavaBean里的numControls的值
    另外,我們當然還需要一個JavaBean文件,So,新建一個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的使用這里就不再重復,網上很多,這方面的資料。記得把jsf-api.jar和jsf-impl.jar加在compile.classpath里就好:)
    新建一個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公司的文檔,免得翻譯不好,誤人子弟??!
    接著新建一個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>

    現在配置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>

    由于我用的是空模板,所以對于config文件我沒改名,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目錄下,要不然會報錯。如果機子上沒有,就去sun的網站上下,或者下一個spring,里面就有這個文件。
    好了,現在在瀏覽器里面輸入
    http://127.0.0.1:8080/hello/hello.jsf,就可以了。注意,是hello.jsf,不是hello.jsp哦!
    posted on 2005-08-27 19:41 MudFish 閱讀(466) 評論(1)  編輯  收藏 所屬分類: JSP

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 四虎影院在线免费播放| 人人狠狠综合久久亚洲88| 久久免费99精品国产自在现线| 亚洲精品午夜无码电影网| 亚洲精品在线免费观看视频| 亚洲AV一区二区三区四区| 久久亚洲2019中文字幕| 国产又大又粗又长免费视频| 污视频网站在线观看免费| 亚洲免费在线视频| 四虎影视在线永久免费观看| 中文字幕日本人妻久久久免费| 国产成人精品亚洲2020| 国产亚洲一区二区手机在线观看| 日本免费网址大全在线观看| 亚洲免费日韩无码系列| 亚洲高清中文字幕免费| 国产亚洲一区二区三区在线| 女性自慰aⅴ片高清免费| 免费人成在线观看视频高潮| 亚洲AV成人片无码网站| 中文字幕亚洲第一在线| 亚洲精品在线视频| 免费羞羞视频网站| 84pao国产成视频免费播放| 日韩免费高清一级毛片| 亚洲性线免费观看视频成熟| 亚洲产国偷V产偷V自拍色戒| 免费吃奶摸下激烈视频| 好男人视频在线观看免费看片| 91久久精品国产免费一区| 99热在线日韩精品免费| 无遮挡呻吟娇喘视频免费播放| 国产婷婷综合丁香亚洲欧洲| 中文字幕亚洲精品| 亚洲丝袜美腿视频| 国产av天堂亚洲国产av天堂| 亚洲精品乱码久久久久久蜜桃| 日韩在线视频免费看| 成年免费大片黄在线观看岛国| 91久久成人免费|