您如何能够从帖子标题中阅读我的问题将是相当新奇的。我试图了解如何让 JSF 与 Eclipse 一起工作,并试图让一个漂亮而著名的 Hello world 运行。
作为模板,我使用了 Oracle Java EE 6 Book 中的代码。
我在 de.kuntze 包中创建了这个 ManagedBean - Hello.java
package de.kuntze;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class Hello {
final String world = "Hello World!";
public String getWorld(){
return world;
}
}
再简单不过了......我将它与以下站点一起使用 - beanhello.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelets Hello World</title>
</h:head>
<h:body>
#{hello.world}
</h:body>
</html>
也很简单...这里是 web.xml 的代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>CopyCat</display-name>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
</web-app>
我让它在我与 Eclipse 集成的 Tomcat 7 服务器上运行,到目前为止,输出对我来说看起来不错 - 如果我可以提供任何日志记录详细信息,请告诉我!
该项目的名称是“CopyCat”,我希望它能够在我的
http://localhost:8080/CopyCat/hello
但它给了我一个与 URL 相同的 404 错误
http://localhost:8080/CopyCat/
和
http://localhost:8080/hello.
我是不是太愚蠢了,看不到我的代码去了哪里,或者我错过了什么?我知道这个问题非常低级,但我只是不明白,也不想开始使用现有项目进行编码 - 已经向我建议过:-/
问候并提前感谢您的任何答案
安德烈
更新并以某种方式解决
总而言之,该问题的解决方案是使用另一个 URL:
http://localhost:8080/CopyCat/faces/beanhello
将tomcat与eclipse一起使用给了我一些错误(见下文),到目前为止我可以建议两件事(顺便说一句:JSTL.jar不是必需的):
a) 通过 coreservlets (http://www.coreservlets.com/JSF-Tutorial/jsf2/#Getting-Started) 使用 Eclipse 工作区作为启动环境。
b) 将 URL 模式更改为*.jsf
并通过 URL 访问代码
http://localhost:8080/HelloWorld/beanhello.jsf
如果您处于类似情况,希望这会有所帮助。