jsf中导入css文件

来源:互联网 发布:linux怎么解压war包 编辑:程序博客网 时间:2024/05/01 08:05

最近在用JSF做一个项目,可是项目中很多的JSF标签让人摸不着头脑,并且标签里面那很多的属性也是真的够折腾人的。虽然JSF或者PrimeFaces有相应的很多官方文档可以查,但是仅仅就那么一点的描述真的还不能让人很快的上手,只有我们自己去做,去实践一下,才能真真的体验相应标签的用处。这样的话,在遇到jsf问题或bug 的时候改起来也比较快速。
近日,在css标签的练习过程中,想导入相对路径下的css样式文件,可是一直都不能导入成功。网络上查到的导入css等资源的时候写法也是如下:

Html代码 
  1. <h:outputStylesheet library="css"  name="../resources/styles.css"  />  

 但是别人的都能成功,为什么自己的一直导入不成功。很是郁闷。 以为是相对路径的问题,把路径改成

Html代码 
  1. <h:outputStylesheet library="css"  name="resources/styles.css"  />  
  2. <h:outputStylesheet library="css"  name="/resources/styles.css"  />  

 得到的结果都是:

Html代码 
  1. <link type="text/css" rel="stylesheet" href="RES_NOT_FOUND" />  

 NoT_FounD是个痛苦的结果。
网上找的很多的结果也就是说是可能是相对路径的问题。可是都试过了,为什么还是不行呢。
于是http://www.mkyong.com/jsf2/resources-library-in-jsf-2-0/ 就有了我想要的结果。
原来library是指定到那个目录下的文件。而不是说指明了文件的样式。
原先我的目录结构是:


看了MKYoung的文章之后,发现根本不用什么resources来指定,只要文件目录层次是对的,那么直接跟上名字就可以了。
设置文件夹目录:


修改代码

Html代码 
  1. <h:outputStylesheet library="css"  name="styles.css"  />  

 查看output的结果如下:

Html代码 
  1. <link type="text/css" rel="stylesheet" href="/helloworld/javax.faces.resource/styles.css.xhtml?ln=css" />  

 
 哈哈,成功了。
JSF 中所有的资源文件都是自己特定的目录层次,只要按照规范来的话,写法还有其他的好几种.