jsf(一)

JSF以MVC模式为基础,与Struts不同,JSF的目标是希望以一个与Swing相类似的方式来开发网页,因此,从JSF的结构图当中,他的核心概念不是页面,而是控件树,也就是说,当用户提交一个请求时,JSF会先将页面上的组件先转换为与Swing当中类似的,由容器和控件组成的控件树,然后数据和事件被设置到对应的控件上,然后以一种与Swing类似的方式,来处理后续的请求。控件树是整个JSF的核心,所有其他的一切一切都是围绕着这棵控件树展开的

JSF的处理核心是控件树,他会先将页面上所声明的控件转换为一棵控件树,后续的操作将在这颗控件树上进行。为了提高性能,系统会为之前生成的控件树提供缓存。Restore View的工作就是在缓存当中查找是否存在之前已经生成好的控件树,如果没有,则根据页面的内容,重新生成。

 faces-config.xml

 <faces-config>     <navigation-rule>         <from-view-id>/*</from-view-id>         <navigation-case>             <from-outcome>success</from-outcome>             <to-view-id>/welcome.jsp</to-view-id>         </navigation-case>                 <navigation-case>             <from-outcome>failure</from-outcome>             <to-view-id>/index.jsp</to-view-id>         </navigation-case>     </navigation-rule>

    <managed-bean>         <managed-bean-name>user</managed-bean-name>         <managed-bean-class>             test.UserBean         </managed-bean-class>         <managed-bean-scope>session</managed-bean-scope>     </managed-bean>             <managed-bean>         <managed-bean-name>user1</managed-bean-name>         <managed-bean-class>             test.userbean1         </managed-bean-class>         <managed-bean-scope>session</managed-bean-scope>     </managed-bean>

web.xml

  <servlet>     <servlet-name>Faces Servlet</servlet-name>     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>     <load-on-startup>0</load-on-startup>   </servlet>     <servlet-mapping>     <servlet-name>Faces Servlet</servlet-name>     <url-pattern>*.do</url-pattern>   </servlet-mapping>

 页面:

index.jsp

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@page contentType="text/html;charset=gb2312"%>  <html>  <head>  <title>第一个JSF程序</title>  </head>  <body>     <f:view>         <h:form>             <h3>请输入您的名称</h3>             <h:outputText value="#{user.errMessage}"/><p>            名称: <h:inputText value="#{user.name}"/><p>            密码: <h:inputSecret value="#{user.password}"/><p>             <h:commandButton value="送出"                              action="#{user.verify}"/>         </h:form>     </f:view>  </body>  </html>

welcome.jsp

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>  <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>  <%@page contentType="text/html;charset=gb2312"%>  <html>  <head>  <title>第一个JSF程序</title>  </head>  <body>     <f:view>         <h:outputText value="#{user.name}"/> 您好!</p>         <h3>欢迎使用 JavaServer Faces!</h3>     </f:view>  </body>  </html>

bean

package test; public class UserBean {     private String name;     private String password;     private String errMessage;

    public void setName(String name) {         this.name = name;     }

    public String getName() {         return name;     }

    public void setPassword(String password) {         this.password = password;     }

    public String getPassword() {         return password;     }

    public void setErrMessage(String errMessage) {         this.errMessage = errMessage;     }

    public String getErrMessage() {         return errMessage;     }

    public String verify() {         if(!name.equals("tiger") ||!password.equals("tiger")) {             errMessage = "名称或密码错误";             return "failure";         }         else {           errMessage = "欢迎";             return "success";         }     }  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值