2017-06-19 109 views
0

我在JSF中是全新的。我正在使用本教程:https://www.tutorialspoint.com/jsf 據此我創建了第一個項目。下面是Java代碼:使用JSF顯示消息

package com.tutorialspoint.test; 
import javax.faces.bean.ManagedBean; 

@ManagedBean(name = "helloWorld", eager = true) 
public class HelloWorld { 

    public HelloWorld() { 
     System.out.println("HelloWorld started!"); 
    } 

    public String getMessage() { 
     return "Hello World!"; 
    } 

} 

這是home.xhtml文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns = "http://www.w3.org/1999/xhtml"> 
<head> 
    <title>JSF Tutorial!</title> 
</head> 

<body> 
#{helloWorld.getMessage()} 
</body> 
</html> 
當我進入這個地址在我的瀏覽器

:「JSF教程」 http://localhost:8080/helloworld/home.jsf選項卡的標題顯示,但內容(文本「你好世界」不是。我可以問你一些提示什麼可以丟失? 如果您需要更多的信息/其他文件的代碼,請讓我知道。 順便說一句,我是。使用Wildfly 10.1.0,那是我部署更新的.war文件的應用程序服務器 預先感謝

+0

它看起來像缺少代碼示例中的一些元素,例如'@ManagedProperty(value =「#{message}」)'看起來很重要。 – Clay

+1

而不是那個教程,我寧願去完全像這樣的2.x集中:https://stackoverflow.com/documentation/jsf/916/getting-started-with-jsf/3036/installing-jsf#t = 201706200625292197528順便說一句,通過getter這種方式訪問​​屬性:'#{helloWorld.message}'。但是,你仍然缺乏一些信息。託管的bean是否被創建?你得到面臨servlet(javax.faces.webapp.FacesServlet)命中嗎?你需要做一些調試工作。 –

+0

如果用''(將名稱空間聲明添加到)並在瀏覽器中執行頁面的視圖源來替換'#helloWorld.message'會怎麼樣?那麼你看到了什麼? – Kukeltje

回答

-1

我不知道該表達式語言以外的工作標籤 您應該測試此你的身體標記內。

<h:outputText value="#{helloWorld.getMessage()}"/> 

的信息,您可以使用此過:

<h:outputText value="#{helloWorld.message}"/> 
+1

正確配置faces servlet時,表達式語言應該評估外部標籤。 –