您的位置:首页 > 编程语言 > Java开发

MyEclipse开发jsf实例

2006-10-10 11:18 459 查看
 准备工作  
  Eclipse3.1、MyEclipse4.0.3、Tomcat  
     
  打开Eclipse  
  新建   web   工程,名称为login,j2ee版本为2.4当然2.3也是可以的  
     
  添加jsf框架,使用1.1.01版本   、URL   pattern:   *.faces其它设置使用默认值  
     
  打开WEB-INF目录下的   faces-config.xml   文件  
  使用工具栏中的工具创建三个页面login.jsp、ok.jsp、error.jsp  
  使用工具栏中的工具navigation创建页面的关系  
     
  以下是配置以后生成的配置文件内容:  
  <?xml   version="1.0"   encoding="UTF-8"?>  
  <!DOCTYPE   faces-config   PUBLIC   "-//Sun   Microsystems,   Inc.//DTD   JavaServer   Faces   Config   1.1//EN"   "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">  
     
  <faces-config   >  
    <navigation-rule>  
      <from-view-id>/login.jsp</from-view-id>  
      <navigation-case>  
        <from-outcome>success</from-outcome>  
        <to-view-id>/ok.jsp</to-view-id>  
      </navigation-case>  
      <navigation-case>  
        <from-outcome>failure</from-outcome>  
        <to-view-id>/error.jsp</to-view-id>  
      </navigation-case>  
    </navigation-rule>  
    <navigation-rule>  
      <from-view-id>/ok.jsp</from-view-id>  
    </navigation-rule>  
    <navigation-rule>  
      <from-view-id>/error.jsp</from-view-id>  
    </navigation-rule>  
  </faces-config>  
     
  创建两个Bean,一个用来处理用户信息的验证,一个是和页面中的数据进行绑定  
     
  UserValidator.java  
  package   com;  
     
  public   class   UserValidator   {  
    //这是验证用户名和密码的过程  
    public   String   validator(String   username,String   password){  
      if((username==null)||(username.length()<1))  
        return   "failure";  
      if((password==null)||(password.length()<1))  
        return   "failure";  
      if((username.equals("test"))&&(password.equals("test")))  
        return   "success";  
      else  
        return   "failure";  
    }  
  }  
     
  LoginBean.java  
  package   com;  
     
  public   class   LoginBean   {  
     
    private   String   username;  
    private   String   password;  
    private   UserValidator   uv;  
     
    public   String   getPassword()   {  
      return   password;  
    }  
    public   void   setPassword(String   password)   {  
      this.password   =   password;  
    }  
    public   String   getUsername()   {  
      return   username;  
    }  
    public   void   setUsername(String   username)   {  
      this.username   =   username;  
    }  
    public   UserValidator   getUv()   {  
      return   uv;  
    }  
    public   void   setUv(UserValidator   uv)   {  
      this.uv   =   uv;  
    }  
    //用户登录过程  
    public   String   login(){  
      return   uv.validator(username,password);  
    }  
  }  
   
  现在按下Ctrl   +   N   键,使用jsp的向导来配置这两个Bean  
  选择MyEclipse/WEB-JSF/Managed   Bean  
  Project:   login  
  选中:Open   Config   File   in   Editor  
  Name:   UserValidator   就是Bean中的一个,这里的name可以自己起一个,如将第一个字母改为小写userValidator  
  Class:   com.UserValidator  
  Scope:   request  
     
  点击完成生成配置内容如下:  
  <managed-bean>  
      <managed-bean-name>userValidator</managed-bean-name>  
      <managed-bean-class>com.UserValidator</managed-bean-class>  
      <managed-bean-scope>request</managed-bean-scope>  
    </managed-bean>  
     
  再次配置另一个Bean,不过这一回增加了一个属性  
  按下Ctrl   +   N   键,选择MyEclipse/WEB-JSF/Managed   Bean  
  Project:   login  
  选中:Open   Config   File   in   Editor  
  Name:   loginBean  
  Class:   com.LoginBean  
  Scope:   request  
  点击add按钮  
  Name:   uv   这里的内容为LoginBean中的uv属性,这个可是不能乱填的  
  Class:   这个不填  
  点下一步  
  Property   Value:   #{userValidator}   这里花括号中的内容为刚才配置的UserValidator的name属性,name属性的第一个字母使用的是小写  
     
  好,确定,完成  
  配置文件中新增了如下代码:  
  <managed-bean>  
      <managed-bean-name>loginBean</managed-bean-name>  
      <managed-bean-class>com.LoginBean</managed-bean-class>  
      <managed-bean-scope>request</managed-bean-scope>  
      <managed-property>  
        <property-name>um</property-name>  
        <value>#{userValidator}</value>  
      </managed-property>  
    </managed-bean>  
     
  在这一个bean中,它的um属性被指定要在运行时注入一个com.UserValidator的实例。  
     
  现在编写login.jsp中的代码如下:  
  <%@   taglib   uri="http://java.sun.com/jsf/html"   prefix="h"   %>  
  <%@   taglib   uri="http://java.sun.com/jsf/core"   prefix="f"   %>  
  <%@   page   language="java"   pageEncoding="UTF-8"%>  
  <html>  
      <head>  
          <title>Login</title>  
      </head>  
       
      <body>  
          <f:view>  
            <h:form>  
              <h:panelGrid   columns="3">  
                <h:outputLabel   for="username"   value="User   Name:"   />  
                <h:inputText   id="username"   value="#{loginBean.username}"   required="true"   />  
                <h:message   for="username"   />  
                <h:outputLabel   for="password"   value="Password:"   />  
                <h:inputSecret   id="password"   value="#{loginBean.password}"   required="true"   />  
                <h:message   for="password"   />   这里的password要和上一行的id="password"对应才可以返回错误消息  
              </h:panelGrid>  
              <h:panelGrid>  
                <h:panelGroup>  
                  <h:commandButton   value="Login"   action="#{loginBean.login}"   />  
                </h:panelGroup>  
              </h:panelGrid>  
            </h:form>  
          </f:view>  
      </body>  
  </html>  
     
  修改   index.jsp,代码如下:  
  <html>  
      <head>    
          <title>Index</title>  
      </head>  
      <body>  
          <a   href="login.faces">Login</a>  
      </body>  
  </html>  
  修改   ok.jsp,代码如下:  
  <html>  
      <head>  
          <title>Login   OK!!!</title>  
      </head>  
      <body>  
          Login   Ok!!!<br>  
      </body>  
  </html>  
  修改   error.jsp,代码如下:  
  <html>  
      <head>  
          <title>Error!!!</title>  
      </head>  
      <body>  
          Error!!!<br>  
      </body>  
  </html>  
   
  好了,代码完成可以进行测试了,输入正确的用户名和密码,提交后进入ok.jsp 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息