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

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

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

    blogjava's web log

    blogjava's web log
    ...

    jsf學習三(簡單登陸)


    學習掌握:

    jsf 驗證
    jsf 國際化
    jsf 導航

    login_zh_CN.properties

    title=第一個jsf程序
    username=用戶名
    password=密碼
    submit=登陸
    usererror=用戶名必須添
    passerror=密碼錯誤


    這個文件放在 新建的? firstjsf包下
    編譯

    native2ascii?–encoding?gb2312 login_src.properties? login_zh_CN.properties



    新建文件
    Login.java

    放在
    login.firstjsf包下.

    src

    package?login.firstjsf;

    import?javax.faces.context.FacesContext;
    import?javax.faces.component.UIComponent;
    import?javax.faces.application.FacesMessage;
    import?javax.faces.validator.ValidatorException;
    import?java.util.ResourceBundle;
    import?java.util.Map;
    import?domain.SecurityManager;
    import?java.io.Serializable;

    public?class?Login?extends?Object?implements?Serializable{

    ??
    private?String?username;
    ??
    private?String?password;
    ??
    private?ResourceBundle?bundle;
    ??
    private?FacesMessage?loginErrorMessage;
    ??
    private?FacesMessage?usernameRequiredMessage;
    ??
    private?FacesMessage?passwordRequiredMessage;

    ??
    public?LogonForm()?{
    ????
    //?初始化資源文件
    ?????bundle?=?ResourceBundle.getBundle("login.logon");//得到國際化資源文件
    ?????usernameRequiredMessage?=?new?FacesMessage(FacesMessage.SEVERITY_INFO,?message,?null);
    ?????string??message?
    =?bundle.getString("usererror");
    ?????passwordRequiredMessage?
    =?new?FacesMessage(FacesMessage.SEVERITY_INFO,?message,?null);
    ?????message?
    =?bundle.getString("passworderror");
    ??}



    ??
    public?String?logining()?{
    ?
    ????
    if?(getUsername()=="okok")?{
    ?????????
    return?"success";
    ??????????
    //success在?faces-config.xml配置,這就是動態導航
    ????else
    ????
    return?"failure";
    ??}

    ??
    public?String?getPassword()?{
    ????
    return?password;
    ??}
    ??
    public?void?setPassword(String?string)?{
    ????password?
    =?string;
    ??}
    ??
    public?String?getUsername()?{
    ????
    return?username;
    ??}

    ??
    public?void?setUsername(String?string)?{
    ????username?
    =?string;
    ??}
    //前臺驗證?沒有填提示錯誤信息?用戶必須填寫
    ??public?void?validateName(FacesContext?context,?UIComponent?toValidate,

    ???????????????????????????????Object?value)?
    throws?ValidatorException?{
    ?
    ????
    if(name.length()<?1||?length?>?16)?{
    ?????
    throw?new?ValidatorException(usernameErrorMessage);
    ????}
    ????
    return;
    ??}
    //驗證密碼必填
    ??public?void?validatePassword(FacesContext?context,?UIComponent?toValidate,

    ???????????????????????????????Object?value)?
    throws?ValidatorException?{


    ????
    if(name.length()<?1||?length?>?16)?{
    ?????
    throw?new?ValidatorException(passwordErrorMessage);
    ????}
    ????
    return;
    ??}
    }




    前臺

    <!--導入jsf標簽-->
    <%@taglib?uri="http://java.sun.com/jsf/html"?prefix="h"%>
    <%@taglib?uri="http://java.sun.com/jsf/core"?prefix="f"%>

    <!--國際化?文件-->
    <f:loadBundle?basename="firstjsf.login"?var="first"/>
    <f:view>
    <head>
    <title>
    <!--輸出標題-->
    ??
    <h:outputText?value="#{first.title}"/>
    </title>
    </head>
    <body>
    <h:form>
    <!--輸出用戶名-->
    <h:outputText?value="#{first.username}"/>
    <!--文本框?用戶名?“login"?在配置文件?實際是login.firstjsf.Login類?validator?驗證-->
    <h:inputText?id="username"?value="#{login.username}"?maxlength="20"validator="#{login.validateName}"/>
    <!--輸出密碼-->
    ?
    <h:outputText?value="#{first.Password}"/>
    <!--文本框--〉
    ???<h:inputText?id="username"?value="#{login.password}"??maxlength="16"?validator="#{login.validatePassword}"/>
    <!--btton?按鈕
    -->
    ??
    <h:commandButton?value="#{login.submit}"?action="#{login.logining}"/>

    <!--消息提示-->
    ?
    <h:messages?showSummary="true"?showDetail="false"?layout="table"/>
    </f:view>
    </body>


    web.xml?配置文件

    <?xml?version="1.0"?encoding="UTF-8"?>
    <web-app?xmlns="http://java.sun.com/xml/ns/j2ee"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee?http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"?version="2.4">
    ??
    <display-name>JSFWebModular</display-name>
    ??
    <servlet>
    ????
    <servlet-name>Faces?Servlet</servlet-name>
    ????
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    ????
    <load-on-startup>1</load-on-startup>
    ??
    </servlet>
    ??
    <servlet-mapping>
    ????
    <servlet-name>Faces?Servlet</servlet-name>
    ????
    <url-pattern>*.jsf</url-pattern>
    ??
    </servlet-mapping>
    </web-app>



    jsf?faces-config.xml?文件

    配置受管理的Bean
    ??
    <managed-bean>
    ????
    <description>first?jsf</description>
    ????
    <managed-bean-name>login</managed-bean-name>
    ????
    <managed-bean-class>login.firstjsf.Login</managed-bean-class>
    ????
    <managed-bean-scope>request</managed-bean-scope>
    ??
    </managed-bean>

    導航配置

    <navigation-rule>
    ????
    <!--from-view-id?標識初始頁-->
    ????
    <from-view-id>/Logon.jsp</from-view-id>
    ?????
    <!--navigation-case?標識一個導航塊-->?
    ?????
    <navigation-case>
    ??????
    <from-outcome>success</from-outcome>
    <!--to-view-id元素為這個導航塊指定目標頁-->
    ??????
    <to-view-id>/ok.jsp</to-view-id>
    ????
    </navigation-case>
    ????
    <navigation-case>
    <!--from-outcome元素是navigation-rule中from-view-id子元素處理的結果-->

    ??????
    <from-outcome>failure</from-outcome>
    ??????
    <to-view-id>/error.jsp</to-view-id>
    ????
    </navigation-case>



    注:
    要實現動態導航,按鈕或鏈接必須有一個方法引用,以用于調用相應的方法,導航處理器根據方法返回的字符串來匹配導航規則

    posted on 2006-08-22 22:27 record java and net 閱讀(2537) 評論(2)  編輯  收藏 所屬分類: jsf學習

    評論

    # re: jsf學習三(簡單登陸) 2008-05-27 14:10 wdiy

    import domain.SecurityManager;
    這個導入的包是什么啊。我怎么沒有啊。你用的是什么框架。  回復  更多評論   

    # re: jsf學習三(簡單登陸) 2008-07-03 14:44 海中沙

    沒必要在托管BEAN里驗證數據吧?直接在前端設置<f:validator/>進行輸入驗證會更好。  回復  更多評論   

    導航

    常用鏈接

    留言簿(44)

    新聞檔案

    2.動態語言

    3.工具箱

    9.文檔教程

    友情鏈接

    搜索

    最新評論

    主站蜘蛛池模板: 亚洲精品少妇30p| 一本无码人妻在中文字幕免费 | 亚洲情a成黄在线观看| 国产精品视_精品国产免费 | 免费人成在线观看网站品爱网| 182tv免费视频在线观看| 男女一边桶一边摸一边脱视频免费| 久香草视频在线观看免费| 精品特级一级毛片免费观看| 免费精品国自产拍在线播放| 无码的免费不卡毛片视频| 一个人看www免费高清字幕| 久久国产一片免费观看| a级精品九九九大片免费看| 国产成人久久AV免费| 222www免费视频| 成人男女网18免费视频| 国产成人免费a在线视频色戒| 亚洲成av人在片观看| 国产aⅴ无码专区亚洲av麻豆| 亚洲精品成人无限看| 亚洲成人在线免费观看| 亚洲人成综合网站7777香蕉| 色噜噜噜噜亚洲第一| 国产免费区在线观看十分钟 | 99在线免费视频| 中文字幕免费视频| 免费A级毛片无码免费视| 国产一区二区三区无码免费| 国产日产亚洲系列最新| 亚洲av日韩av激情亚洲| 亚洲国产av一区二区三区丶| 综合一区自拍亚洲综合图区| 男女一边桶一边摸一边脱视频免费 | 亚洲区日韩区无码区| 亚洲乱码国产乱码精品精| 亚洲码在线中文在线观看| 亚洲熟妇AV一区二区三区浪潮| 一二三四在线观看免费中文在线观看| 一个人免费视频在线观看www| 国产精品免费观看|