jsf内部结构初体验

1:jsf分为四部分。1)jsp页面。2)java源程序。3)java bean。4)jpa(数据库框架)

2:jsp 和 java bena通过“faces-config.xml ” 文件相互通信。通信的方法为以下代码“蓝色文字”

    <managed-bean>
               <managed-bean-scope>request</managed-bean-scope>     
    </managed-bean>

3:xml接收form和java bean 的返回值确定接下来跳到哪个页面继续执行。如以下代码蓝色部分均指向login.jsp页面。

jsp页面

<h:form id="login">

      ...

      <h:commandLink id="creat" value="Create New Account" action="login" />

</h:form>

java bean 页面

package  enterprise.jsf_jpa_war.UserManager;

public class usermanager

{

public String name()

{

    .....

    return "login";

}

}

xml 信息接收页面

<navigation-case>

     <from-outcome>login</from-outcome>

    <to-view-id>/login.jsp</to-view-id>

     <redirect />

</navigation-case>

4:下面的xml代码写出了调用java bean代码的名字和路径。

<managed-bean>
        <managed-bean-name>usermanager</managed-bean-name><!--java bean类的名字-->
        <managed-bean-class>enterprise.jsf_jpa_war.UserManager</managed-bean-class><!--路径-->
        <managed-bean-scope>request</managed-bean-scope>      
    </managed-bean>

5:以下部分介绍了xml调用jpa的方法。

<lifecycle>
        <phase-listener>
            enterprise.jsf_jpa_war.AuthenticationPhaseListener
        </phase-listener>
    </lifecycle>

6:java bean下设置sesson 变量

public static final String USER_SESSION_KEY = "user";

7:jsp调用java bean的两种方法

<h1><h:outputText value="JSF + JPA" /></h1>
            Welcome ${user.firstname} ${user.lastname}!  You've been registered since ${user.since}.
            <h:form>
                <h:commandButton id="logout" value="Logout" action="#{usermanager.logout}"/>
            </h:form>

上面的蓝色部分通过java bean 设置的sesson变量名用来调用java bean内的变量。下面的蓝色部分是通过java bean类名用来调用java bean 内的函数。