`

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']}




分享到:
评论

相关推荐

    jsp2.0 应用教程 光盘

    (2)本书实例源程序运行测试环境为: JDK 5.0 update 6和JDK 6.0 beta Tomcat 5.5.12 MySQL 5.0.16 (3)本书涉及的共享软件或免费软件的链接地址如下。 JDK: http://java.sun.com Tomcat: ...

    JAVA程序开发大全---上半部分

    本书内容丰富、技术全面、案例实用,而且所有的实例都以MyEclipse工程的形式组织,并按章节的顺序组织在附书光盘中,源代码工程都经过精心调试,可以直接导入MyEclipse中运行。 本书内容精练、重点突出、实例丰富,...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    iuhyiuhkjh908u0980

    PrettyFaces: EL API访问PrettyContext 支持JSF 1.1 增强了错误页面和servlet重定向 PrettyFaces是一个JSF1.2和JSF2.0的扩展,用来创建便于书签收藏、漂亮的网址。 PrettyFaces优雅的解决了这个问题,包括诸如功能:...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例 spring jar 包详解spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下...

    java开源包1

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包2

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包3

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包6

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包5

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包10

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包8

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包11

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包7

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包9

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包4

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包101

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    Java资源包01

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

Global site tag (gtag.js) - Google Analytics