JSF是什么

jsf是一种web框架,其实我也没有用过,这是我很久之前在网上看到的一种框架,当时大致简单的了解一下

jsf常用来和struts对比,struts是一种mvc框架,jsf是一种事件驱动的框架。

在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,struts这种事件方式称为application event,application event和component event相比是一种粗粒度的事件。

struts重要的表单对象ActionForm是一种对象,它代表了一种应用,这个对象中至少包含几个字段,这些字段是Jsp页面表单中的input字段,因为一个表单对应一个事件,所以,当我们需要将事件粒度细化到表单中这些字段时,也就是说,一个字段对应一个事件时,单纯使用Struts就不太可能,当然通过结合JavaScript也是可以转弯实现的。

JSF就可以如下实现:

<h:inputText id="userId" value="#{login.userId}">
  <f:valueChangeListener type="logindemo.UserLoginChanged" />
</h:inputText>
<h:commandButton id="login" commandName="login">
  <f:actionListener type=”logindemo.LoginActionListener” />
</h:commandButton>

JSF依赖jsf核心包,jstl及apache常用的commons类,其web-xml的配置如下:

<web-app>
  <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>*.faces</url-pattern>
  </servlet-mapping> 
</web-app>

 其config文件也和struts类似:

<faces-config>
  <navigation-rule>
    <from-view-id>/index.jsp</from-view-id>
    <navigation-case>
      <from-outcome>login</from-outcome>
      <to-view-id>/welcome.jsp</to-view-id>
    </navigation-case>
  </navigation-rule>
  <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>
</faces-config>

参考文档:

http://www.jdon.com/idea/jsf-struts.htm

总结一下,jsf我一点也没用过,是在网上看到了,就看了些相关的资料,目前web框架很多,只要认准一个精通即好,其实万变不离其宗。


你可能感兴趣的:(JSF是什么)