`

JSF2.0中的实例测试(一)

    博客分类:
  • jsf
阅读更多
<img src="#{resource['images/wave.med.gif']}" alt="Hello!"/> 这是jsf2.0中的新特性,意思是把系统中的图片、css、JS文件都作为资源,放在EL表达式内表示,resource是Map类型,中括号里面是key,’images/wave.med.gif’表示的相对路径,如果最前面有“/”,表示是该系统的根目录,例如,http://localhost:8081/samples/guess/javax.faces.resource/images/wave.med.gif
         http://localhost:8081 是我的本地服务器地址及端口,/samples 是系统的根目录,/guess 是由WEB.xml中

         Faces Sevlert 映射的路径,配置如下:
<servlet-mapping>
         <servlet-name>Faces Servlet</servlet-name>
         <url-pattern>/guess/*</url-pattern>
</servlet-mapping>


/javax.faces.resource 是resource映射的路径,

       /images/wave.med.gif 是该图片资源在系统中的位置。

      我不推荐使用这个新特性,因为对于美工设计人员来说,虽然有了<img>标签,这是一点进步,但是其属性src的路径与

            图片资源的实际路径无法对应起来的,因为Dreamweaver是无法识别EL语言的。
             因此,我决定还是使用jsf1.2操作样式 ,如下:

             <img src="../images/emsymlogo.png" alt="EMSYM" jsfc="h:graphicImage"  value="/images/emsymlogo.png"/>

              对于样式表来说也是如此

自定义验证标签:<gn:validator minimum="#{userNumberBean.minimum}" maximum="#{userNumberBean.maximum}"/>
          其中,命名空间gn 是在uessnumber.tablib.xml配置文件中定义,如下:
<namespace>http://java.sun.com/jsf/demo/guessnumber</namespace>
                 <tag>
                     <tag-name>validator</tag-name>
                        <validator>
                           <validator-id>ClientSideValidator</validator-id>
                           <handler-class>                                  guessnumber.ClientSideValidatorHandle                           </handler-class>
                           <validator-extension>
                             <foo>bar</foo>
                           </validator-extension>
                       </validator>
               </tag>
 
并且在web.xml中注册,如下:
<context-param>
               <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
               <param-value>/WEB-INF/guessnumber.taglib.xml</param-value>
       </context-param>

   JSF2.0中的导航也跟以前不一样了,不需要在config.faces.xml文件中集中设置导航
            <h:commandButton id="submit" action="response?faces-redirect=true" value="Guess!"/>

            response是下一个jsf页面的名称。



BackingBean是利用注入的方式应用,不需要在config.faces.xml配置文件中注册了,如下:
         @ManagedBean 
         @SessionScoped   作用范围

         另外两个注解:

           @SuppressWarnings :抑制编译器发出警告。

           @PostConstruct:  当bean对象完成实例化后,使用了这个注释的方法会被立即调用。但不等于说部署后就会执行。

          bean的实例化只有在bean被访问到时才会实例化,这取决于服务器的策略,如果bean之前就不存在肯定会实例化它,

          并执行该注解方法,如果之前已经实例化了一些Bean,并且现在有可用的,那么不会实例化,也不会执行方法注解

          方法。执行这个方法时,相关的资源依赖已经注入完毕。

一个枚举类的例子:
private enum Response {
       Correct("Yay! You got it!"),
       Larger("Sorry, {0} is incorrect.  Try a larger number."),
       Smaller("Sorry, {0} is incorrect. Try a smaller number."); 

       private String msg;
       Response(String msg) {
           this.msg = msg;
       } 

       String getMessage(Object... params) {
           return MessageFormat.format(msg, params);
       }
   }

引用方式:Response.Correct.getMessage(); 没有参数

          Response.Larger.getMessage(userNumber);有参数

import javax.faces.context.FacesContext;
public class ServletContextInitialParameter { 

    public static String getInitialParameterValue(String parameterName) {
        FacesContext fc = FacesContext.getCurrentInstance();
        return fc.getExternalContext().getInitParameter(parameterName);
    }
}

如下是在web.xml文件中配置全局的参数和值,在系统进行编译的时候初始化值。
<context-param>
           <param-name>com.emsym.space.storePath</param-name>
                   <param-value>
                      D:\Program Files\apache-tomcat-6.0.18\webapps                  </param-value>
    </context-param>

以下是在java代码中以用:

         String directory = ServletContextInitialParameter.getInitialParameterValue("com.emsym.space.storePath");

         以下是在jsf视图中引用:

         #{initParam['com.emsym.space.storePath']}




分享到:
评论

相关推荐

    jsf2.0+jdbc实例

    综上所述,这个"jsf2.0+jdbc实例"涵盖了JSF 2.0组件模型的使用,通过EL进行数据绑定,利用JDBC进行数据库操作,并在Tomcat 6.0上部署和运行。通过学习和实践这个实例,开发者可以深入了解JSF 2.0与数据库集成的基本...

    JSF2.0+Spring+Hibernate实例代码.zip.zip

    这个"JSF2.0+Spring+Hibernate实例代码.zip.zip"文件很可能是包含了一个完整的项目示例,用于展示这三个框架如何协同工作以构建高效、灵活的Web应用程序。 **JavaServer Faces 2.0 (JSF)** 是一个Java EE标准的MVC...

    JavaServer Faces 2.0完全参考手册(全)pdf

    4. **依赖注入**:JSF 2.0集成了Java EE的依赖注入(DI)功能,开发者可以使用`@ManagedBean`和`@Inject`注解来管理bean实例和注入依赖,这使得代码更加整洁,提高了可测试性。 5. **转换和验证**:JSF 2.0提供了...

    JavaServer Faces 2.0, The Complete Reference源码

    3. **Managed Beans**:JSF 2.0引入了CDI(Contexts and Dependency Injection)集成,使得管理JavaBeans更为方便,同时支持依赖注入,提高了代码的可测试性和可维护性。 4. **Faces Flow**:这是一种新的导航模型...

    JSF核心编程 第二版(含源码)(core JavaServer Faces 2ed)

    《JSF核心编程 第二版》是一本深入探讨JavaServer Faces (JSF)技术的专业书籍,作者通过详尽的讲解和实例,为读者揭示了JSF框架的核心概念和实际应用。这本书不仅涵盖了JSF的基本原理,还包含了最新的JSF 2.0版本的...

    JSF 核心编程与入门

    Managed Beans是JSF中的业务逻辑组件,它们是Java类,可以被JSF自动管理和实例化。开发者可以在Bean中定义业务逻辑,并通过EL表达式在视图中引用。 **8. 自定义组件** 除了预定义的组件,JSF还允许开发人员创建...

    《jsf第一步》源码ch1-12

    12. **最佳实践**:书中通过实例代码演示了JSF的最佳实践,如如何有效地组织Managed Beans,如何优化性能,以及如何调试和测试JSF应用。 通过学习这些章节的源码,读者可以逐步掌握JSF的基本用法,理解其工作原理,...

    cdi jsf java ee 6 weld

    在IT行业中,CDI(Contexts and Dependency Injection)和JSF(JavaServer Faces)是Java EE 6框架中的核心组件,而Weld是CDI的一个实现。这些技术为开发高效、可维护的Web应用程序提供了强大的支持。让我们深入探讨...

    jsf入门指南,网页版,特别适合新手学习,我刚接触jsf就是看得这个

    JSF 2.0以后,可以与Contexts and Dependency Injection (CDI)框架集成,提供了更强大的依赖注入功能,使得应用更具模块化和可测试性。 **九、JSF应用部署** JSF应用通常部署在支持Java EE的Web服务器或应用服务器...

    JSF中文教程(帮助文档)

    - 虽然JSF基于MVC,但在实际应用中,MVVM模式也常被采用,以提高应用的可维护性和测试性。 ### 9. JSF的部署与配置 - 配置JSF应用程序涉及web.xml文件和faces-config.xml文件,用于定义导航规则和组件行为。 ### ...

    jsf 中文帮助

    10. **依赖注入**:JSF 2.0引入了CDI(Contexts and Dependency Injection)支持,允许开发者利用注解来注入依赖,简化了代码和提高了可测试性。 《JSF入门》简体中文版这本书很可能涵盖了以上所有概念,并通过实例...

    jboss-ajax4jsf-1.1.1-src

    4. **示例或测试代码**:演示如何使用Ajax4jsf的实例,帮助开发者理解和学习如何集成到自己的JSF应用中。 5. **文档**:可能包含API文档、用户指南、开发人员手册等,提供关于如何使用和扩展框架的详细信息。 6. **...

    《JSF入门》简体中文版

    9. **实战示例**:书中的实例部分通常会包含实际项目开发中的例子,帮助读者将理论知识应用于实践。 通过阅读《JSF入门》简体中文版,无论是初学者还是有一定经验的开发者,都能对JSF有深入的理解,并能够运用到...

    seam2.0 中文文档

    - 宾馆预订系统是一个完整的Seam应用程序实例。 - **预订系统概况**: - 描述了系统的整体架构和主要功能。 - **理解Seam业务对话(Conversation)**: - 业务对话是Seam的核心概念之一,用于管理用户的会话。 - 它...

    DWR2.0中文文档

    ### DWR2.0中文文档知识点解析 #### 一、DWR概述 **DWR (Direct Web Remoting)** 是一个开源的Java库,它能够帮助开发者轻松地在浏览器端的JavaScript代码中调用服务器端的Java方法,就像这些Java方法是在浏览器...

    Spring2.0

    Spring 2.0中的核心特性之一就是依赖注入,它允许组件之间的关系在运行时由容器管理,而不是由代码硬编码。通过XML配置或注解,我们可以声明一个类需要哪些依赖,Spring会自动装配这些依赖,降低了类之间的耦合度。...

    JSP 2.0技术手册

    书中通过丰富的实例详细讲解了 Java Servlet 与 JavaServer Pages 的应用,对于理解这些关键技术及其在现代 Web 开发中的作用至关重要。通过学习这本书,读者不仅可以掌握 JSP 2.0 的基础知识,还能深入了解 Java ...

    JSF(Java Server Faces)学习日记

    这个"JSF学习日记"的压缩包文件包含了一个作者在学习过程中创建的实例和所需的JSF库文件,这对于初学者或者希望深入理解JSF的人来说是非常有价值的资源。 JSF的核心概念包括以下几个方面: 1. **组件模型**:JSF...

Global site tag (gtag.js) - Google Analytics