JSF2环境设置

时间:2011-12-19 12:32:55

标签: java jsf tomcat richfaces

我是一名新的Web开发人员,他甚至都在努力使用Eclipse设置本地开发环境。我的目标是最终将我的想法变成一个可以托管在64MB私有JVM Tomcat 6服务器(here)上的酷网站。

我尝试了所有可以持续4天阅读大量教程网站的内容,并想出了一个可以下载的Eclipse项目。 download

我对整合这么多框架感到不知所措(我以前不是一个开源人员),我觉得我被卡住了。以下是我的一些问题。

  1. 为什么我在本地机器上的Tomcat 6服务器上运行上面的项目,我必须使用“http:// localhost / richfaces-tomcat6 /”来访问它我希望能够通过“http://访问它本地主机/纳摩/”。因为“Namo”将成为我的网站名称。
  2. 为什么“http://localhost/richfaces-tomcat6/index.xhtml”根本没有显示inputText?
  3. 为什么我不能对托管bean使用“@Named”注释?相反,我必须使用“@ManagedBean”。我读了一些@ManagedBean真正用于遗留系统的地方。这有关系吗?
  4. 我正在尝试使用网站上的一些Ajax功能在JSF 2中编写代码。我读了Richfaces有用的地方。我甚至在设置这些方面走在正确的轨道上了吗?
  5. 我知道我问了很多问题。我已经准备好在本地设置一些东西并为JSF上了书,但我甚至无法开始使用它,这非常令人沮丧。如果有人可以帮助我或引导我走向正确的方向,我将非常感激。

3 个答案:

答案 0 :(得分:1)

  

为什么我在本地机器上的Tomcat 6服务器上运行上面的项目时,我必须使用“http:// localhost / richfaces-tomcat6 /”来访问它我希望能够通过“http”来访问它://本地主机/纳摩/”。因为“Namo”将成为我的网站名称。

上下文路径默认为Eclipse项目名称。您应该已经在Eclipse项目创建向导的最后一个步骤中编辑了上下文路径。您可以随后在项目属性的 Web项目设置部分中对其进行编辑(右键单击项目并选择属性)。


  

为什么“http://localhost/richfaces-tomcat6/index.xhtml”根本没有显示inputText?

表示请求网址与FacesServlet中定义的web.xml的网址格式不匹配。给定的网址需要将其映射到<url-pattern> *.xhtml。 Eclipse默认为/faces/*和/或*.jsf,并且要求您通过http://localhost/richfaces-tomcat6/faces/index.xhtmlhttp://localhost/richfaces-tomcat6/index.jsf打开页面。但是,在FacesServlet上映射*.xhtml要好得多。


  

为什么我不能对托管bean使用“@Named”注释?相反,我必须使用“@ManagedBean”。我读了一些@ManagedBean真正用于遗留系统的地方。这有关系吗?

@Named注释是CDI的一部分,它是Java EE 6的一部分。然而,Tomcat是一个简单的JSP / Servlet容器,而不是一个完整的Java EE容器。如果要在Tomcat上使用它,或者用更完善的Java EE容器(如Glassfish 3或JBoss AS)替换Tomcat,您需要自己安装CDI。另请参阅Weld documentation(Weld是CDI参考实现的代号)。请注意,您不一定需要 CDI才能运行JSF。使用@ManagedBean应该足以用于简单的Web应用程序。


  

我正在尝试使用网站上的一些Ajax功能在JSF 2中编写代码。我读了Richfaces有用的地方。我甚至在设置这些内容时走上正轨吗?

JSF2已经支持带有<f:ajax>标记的Ajax。 RichFaces只是一个组件库,它在more enhanced components and skinnability support之上提供standard component set。另请参阅Communication in JSF 2.0

答案 1 :(得分:0)

1,2 JSF 2.0 tutorial with eclipse tomcat

3 @ManagedBean makes sense for applications that use JSF but do not use JSR 299

4 是的,你可以使用RF做一些很酷的东西,jsf 2.0也支持<f:ajax>所以没有RF使用默认实现你也可以做AJAX的东西

答案 2 :(得分:0)

你有严重的内存限制,所以我最好建议你的页面和MVC框架(如 Struts)查看 Velocity Freemarker 等轻量级模板引擎/ Struts 2 Spring MVC