专注于高品质PHP技术等信息服务于一体 [STIEMAP] [RSS]

百度提供的广告:
技术文档
当前位置:首页 > 技术文档 >  > 
Jsf 快速上手案例

Jsf 快速上手案例
1,开发环境  myEclipse 8.5 jdk 1.6 mysql5.0 tomcat 6.0.18
2, 在 myEclipse 中新建一个web 项目,点添加JSF 支持 按默认的来,点 Finish  完成,不要选中Add Jsf Facelets support
3,新建JSP测试,右击新建一个JSP 选择模板为JSF 这样你就不用自己写那两个JSF的 taglib 了。
默认有以下代码:
<f:view>
        This is my JSF JSP page. <br>
</f:view>
4,步署测试 打开浏览器测试 http://地址:myjsp.faces  如果出现 This is my JSF JSP page. 则环境配置成功。这里你还可以修改web.xml
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
 这样你就可以输入.myjsp.jsf 来访问了,当然了你可以输入ASP PHP 来欺骗黑客。
5,新建一个JAVA bean ,User 有一个属性 userName 设置 set ()  get () 方法
User java :
package com.qingruxu.bean;

public class User {

    private String userName;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
   
}
新 建一个JSF (方法如上如述)

打开faces-config.xml 修改如下
  <navigation-rule>
  <from-view-id>/index.jsp</from-view-id>
  <navigation-case>
   <from-outcome>login</from-outcome>
   <to-view-id>/celcome.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>com.qingruxu.bean.User</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
 
 <navigation-rule>
  <from-view-id>/celcome.jsp</from-view-id>
 </navigation-rule>
 
 index.jsp:
 <f:view>
    <h:form >
    <h3>请输入您的姓名:</h3>
    <h:inputText value="#{user.userName}"></h:inputText>
    <h:commandButton value="提交" action="login"></h:commandButton>
    </h:form>
</f:view>

celcome.jsp:
<f:view>
     <h:outputText value="#{user.userName}"></h:outputText>
     <h3>欢迎使用JSF !</h3>
</f:view>

 
6,步署测试 输入 http://127.0.0.1:8080/jsf/index.jsf
输入你的名字,点提交。就可以显示了。

7,用户登陆 使用JSF完成
修改 index.jsp   faces-config.xml  User.java

User.java
package com.qingruxu.bean;

public class User {

    private String userName;
    private String userPwd;
    private String errorMsg;
   
    public String checkLogin()
    {
        if(userName.equals("admin")&&userPwd.equals("123"))
        {
            errorMsg="";
            return "success";
        }
        else{
            errorMsg="用户名或密码不正确,请重新输入!非管理员请勿测试登陆。";
            return "error";
        }
    }

    public String getUserPwd() {
        return userPwd;
    }

    public void setUserPwd(String userPwd) {
        this.userPwd = userPwd;
    }

    public String getErrorMsg() {
        return errorMsg;
    }

    public void setErrorMsg(String errorMsg) {
        this.errorMsg = errorMsg;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
   
}


faces-config.xml :
<managed-bean>
  <managed-bean-name>user</managed-bean-name>
  <managed-bean-class>com.qingruxu.bean.User</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>
 <navigation-rule>
  <from-view-id>/index.jsp</from-view-id>
  <navigation-case>
   <from-outcome>success</from-outcome>
   <to-view-id>/celcome.jsp</to-view-id>
  </navigation-case>
  <navigation-case>
   <from-outcome>error</from-outcome>
   <to-view-id>/index.jsp</to-view-id>
  </navigation-case>
index.jsp :
<f:view>
    <h:form >
    <h3>JSP登陆测试:</h3>
    用户名:<h:inputText value="#{user.userName}"></h:inputText>
    密   码:<h:inputText value="#{user.userPwd}"></h:inputText>
    <h:outputText value="#{user.errorMsg}" style="color:#f00;"></h:outputText>
    <h:commandButton value="提交" action="#{user.checkLogin}"></h:commandButton>
    </h:form>
</f:view>

我看了一下生成的源代码,有点乱,不利于SEO 搜索引擎优化。
JSF简化封装了相当一部分的操作。完全不用自己编写servlet。
执行速度还挺快,感觉比Struts要快。