我是JSF和EJB應用程序的新手,因此即使在簡單的JavaEE應用程序中也會遇到問題。我在eclipse中用JBoss創建了一個簡單的JavaEE應用程序,目標只是嘗試一些JSF標籤以及它們與Java Bean的綁定。我無法找出原因如下JSF的代碼不會得到什麼出現在輸出頁面:無法獲得Jsf標籤outputText出現
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<f:loadBundle basename="resources" var="msg" />
<head>
<title><ui:insert name="pageTitle">Page Title</ui:insert></title>
<style type="text/css">
</style>
</head>
<body bgcolor="#ffffff">
<h:body>
<h:outputText value="#{hello.world}" />
<h:outputText value="TTT" />
</h:body>
</body>
</html>
不僅價值hello.world未來的form bean,而是一個簡單的文本「TTT」沒有出現爲好。 bean的代碼是:
@ManagedBean
public class Hello {
final String world = "World";
/**
* Default constructor.
*/
public Hello() {
}
public String getWorld(){
return "Hello" + world;
}
}
被Facelets-config.xml文件是:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="2.1" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee /web-facesconfig_2_1.xsd">
<managed-bean>
<managed-bean-name>hello</managed-bean-name>
<managed-bean-class>com.al.jsftest.Hello</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
當我嘗試使用純文本標籤,它散發出來的屏幕上,但它確實不會再與#{hello.world}一起工作,即綁定到Bean失敗。一旦我有了一個提示,讓我如何讓JSF標籤成功輸出,我將不勝感激提示我應該注意什麼,以便讓Bean綁定到JSF?
UPDATE: 這似乎是同樣的問題similar question,但我的應用程序是在Eclipse與JBoss,而不是在Netbeans的GlassFish的。因此,我添加了我的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" id="WebApp_ID" version="3.0">
<display-name>JsfTest</display-name>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<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.xml文件中包含了servlet映射。它只是在輸出中不明顯(頁面沒有被視爲代碼)。我將歡迎文件更改爲/faces/index.xhtml,但不幸的是它沒有帶來任何效果。輸出文本 - 標籤等未呈現。當我添加到servlet映射 * .xhtml url-pattern>時出現錯誤。 –
arjacsoh
2013-03-04 13:09:12
錯誤不是來自* .xhtml,而是Jsf標記不呈現的方式。這是否應該歸功於我在創建文件時選擇了「Common Facelet Page」作爲模板的事實? – arjacsoh 2013-03-04 13:23:47
更新了我的答案。如果錯誤仍然存在,請發送詳細消息。 – SimonSez 2013-03-04 13:57:45