JSF 2.0 초보자 데모

8341 단어
디렉토리 구조:
뿌리
--웹 페이지
--login.xhtml
--index.html
--error.html
--웹-INF
--web.xml
--sources 패키지
--org
--b3log
--신청
--로그인.자바
--실재
--사용자.자바
pom.xml
 

  • XML 구성 제거

  • JSF2.0은 주로 Facelet의 포함으로 인해 수반되는 많은 가치를 절약합니다. face-config.xml에 많은 구성을 저장합니다.

        <managed-bean>  
           <managed-bean-name>user</managed-bean-name>  
           <managed-bean-class>  
              com.corejsf.UserBean  
           </managed-bean-class>  
           <managed-bean-scope>session</managed-bean-scope>  
        </managed-bean> 


  • 탐색 구성의 단순화

  • 불필요한
    <navigation-rule>
      <navigation-case>
        <from-view-id>/pages/login.xhtml</from-view-id>
        <outcome>places</outcome>
        <to-view-id>/pages/places.xhtml</to-view-id>
      </navigation-case>
    </navigation-rule>



    이러한 복잡한 탐색 규칙은 규칙에 따라 절대 경로를 통해서만 탐색하면 됩니다.


    <h:form>
                <h:commandLink action="login" value="Back"/>
            </h:form>



    같은 레벨 디렉토리에 있는 login.xhtml 페이지로 바로 이동할 수 있습니다.

    페이지 점프는 자바 애플리케이션 코드에서 반환된 문자열에 따라 수행될 수도 있습니다.


    public String login(final String password) {
    
            if (password.equals("Vanessa")) {
    
                return "index";
    
            }
    
            return "error";
    
        }
    
    



  • EL 표현의 향상

  • 과거에는 JSF의 표현이 매개변수 전달을 지원하지 않았지만 이제는 해당 설정 파일을 구성하여 구현할 수 있습니다.
    1. Maven을 통해 필요한 종속성 가져오기
        <dependencies>
            <dependency>
                <groupId>javax.el</groupId>
                <artifactId>el-api</artifactId>
                <version>2.1.2-b05</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.el</groupId>
                <artifactId>jboss-el</artifactId>
                <version>2.0.1.GA</version>
            </dependency>
        </dependencies>
    <repositories>
            <repository>
                <id>sun</id>
                <url>http://download.java.net/maven/2/</url>
            </repository>
            <repository>
                <id>java.net</id>
                <url>http://download.java.net/maven/2</url>
            </repository>
            <repository>
                <id>jboss.org</id>
                <url>http://repository.jboss.org/maven2</url>
            </repository>
        </repositories>

     
    2. web.xml에서 expressionFactory 구성


       <context-param>
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
    </context-param>





    3. EL 표현식을 사용하여 객체를 전달할 수 있습니다.
    예:

     
     
    신청 설명
    사용자가 사용자 이름과 비밀번호를 입력하여 로그인합니다.
    1. 로그인 성공 -- 비밀번호는 "Vanessa"입니다. index.xhtml 페이지를 입력하고 표시: Welcome, #{user.userName}!
    2. 로그인 실패 -- 암호가 "Vanessa"가 아닙니다. error.xhtml 페이지를 입력하고 오류 이유를 묻고 뒤로를 클릭하고 index.xhtml로 돌아갑니다.
     
     
    코드의 일부
    --login.xhtml

    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html">
        <head>
            <title>Welcome Login</title>
        </head>
        <body>
            <h:form>
                <h:panelGrid columns="2">
                    <h:outputLabel for="userName" value="User Name"/>
                    <h:inputText id="userName" value="#{user.userName}"/>
                    <h:outputLabel for="password" value="Password"/>
                    <h:inputSecret id="password" value="#{user.password}"/>
                    <h:outputLabel value=""/>
                    <h:commandButton value="Login" action="#{login.login(user.password)}"/>
                </h:panelGrid>
            </h:form>
        </body>
    </html>
    

    --index.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <title>Index</title>
        </head>
        <body>
            Welcome, #{user.userName}!
        </body>
    </html>
    

    --error.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html">
        <head>
            <title>Error</title>
        </head>
        <body>
            The Password is Error!
            <h:form>
                <h:commandLink action="login" value="Back"/>
            </h:form>
        </body>
    </html>
    

    --로그인.자바

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package org.b3log.application.jsf;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;
    import org.b3log.entity.User;
    /**
     *
     * @author Vanessa
     */
    @ManagedBean(name = "login")
    @SessionScoped
    public class Login {
        public String login(final String password) {
            if (password.equals("Vanessa")) {
                return "index";
            }
            return "error";
        }
    }
    

    --사용자.자바

    package org.b3log.entity;
    import java.io.Serializable;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;
    /**
     * This class depicts a user of B3log. This class only describes  user's
     * information basically, such as user name, email address, etc. The security
     * information(i.e. user password, user roles, etc) is depicted in class
     * <code>UserAccount</code>.
     *
     * @author <a href="mailto:[email protected]" mce_href="mailto:[email protected]">Liyuan Li</a>
     * @version 1.0.0.0, Aug 4, 2009
     * @see UserAccount
     */
    @ManagedBean(name = "user")
    @SessionScoped
    public class User implements Serializable {
        private String userName;
        private String email;
        private String password;
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
    }
    

     
     
    원본 링크: http://blog.csdn.net/vanessa219/article/details/4572934

    좋은 웹페이지 즐겨찾기