解决问题(九)——jsf+facelet(一)下马威

 最近在研究facelet,发现它还是一个很好用的模版类工具,就像把它和jsf整合来用。但是没想到我心中对facelet的熊熊烈焰,在我刚走到facelet大门的时候就被扑灭的。刚刚接触,就被facelet来了一个下马威。

其实我的流程也很简单,用myeclipse搭建一个web project,在添加jsf capabilities,用1.5的说明,再把support facelet钩上环境就搭好了。

创建三个文件:index.jsp, welcome.xhtml,main.xhtml(template)

index.jsp中的内容很简单就是一句<jsp:forward page="/welcome.faces"></jsp:forward>

welcome.xhtml的内容也很简单

<ui:composition template="/templates/main.xhtml">
   <ui:define name="title">Welcome</ui:define>
   <ui:define name="content">Content</ui:define>
 </ui:composition>

main.xhtml的内容就是主页面的布局

<div id="container">
   <div id="header">
    <ui:include src="/templates/include/header.xhtml"></ui:include>
   </div>
   <div id="pageBody">
    <div id="leftSideBar">
    </div>
    <div id="content">
     <ui:insert name="content">Content</ui:insert>
    </div>
    <div id="rightSideBar">
    </div>
   </div>
   <div id="footer">
    <ui:include src="/templates/footer.xhtml"></ui:include>
   </div>

header.xhtml,footer.xhtml是用myeclipse创建的文件,放在/templates/include/下面。里面的内容完全没有改动过。所有这些都是很简单的内容,但是一运行就会出现以下错误 

HTTP Status 404 - /jsfproject/welcome.faces


type Status report

message /jsfproject/welcome.faces

description The requested resource (/jsfproject/welcome.faces) is not available.

在网上查了很多资料都说是找不到这个文件,经过两天的研究,看了网上给的例子,和同事做的例子(他做的完全可以运行,除了页面内容以外什么配置都一样),才有点结果,明白了为什么。

是实际上可能你也看出来了,上面代码里面header.xhtml,footer.xhtml放在同一个目录下面,但是两个include的src内容却不一样(这里这么明显是为了举例,当时就算是这么明显也没看到,一直以为是自己的环境配置有问题),这个就是问题,因为其中一个文件连接不对,只要把它该对就不会有错了。

通过对这个问题的研究,收获就是not available 可以代表(1)文件不存在,在环境中找不到(2)文件存在但是里面包含一些信息导致这个文件不可用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码匠君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值