2014-05-08 20 views
0

如何訪問jsf頁面上創建的對象?我不想將該對象作爲此bean的屬性。下面是我嘗試使用創建和訪問xhtml中的對象(主要面孔)

import org.Server; 

@ManagedBean 
public class IntroBean { 
private int id; 
private String name; 


public String doSend() { 
    Server server = new Server(); 
    server.setId(id); 
    server.setName(name); 
    return("send-page"); 
} 

現在我想訪問send-page.xhtmlserver對象的示例代碼。 這裏是XHTML頁面的代碼

<h2>Id : #{server.id}</h2> 
<h2>Name : #{server.name}</h2> 
+0

你的問題不明確。您沒有定義bean的名稱,也沒有定義它的範圍。問題確實含糊不清。 – Makky

回答

0

這是通過將所需對象到隱EL對象的一個​​實現,如sessionScope

private Map<String,Object> sessionMap = FacesContext.getCurrentInstance().getExternalContext().getSessionMap(); 
... 
public String doSend(){ 
    Server server = new Server(); 
    server.setId(id); 
    server.setName(name);  
    sessionMap.put("serverObject", server); 
    return("send-page"); 
} 

然後,把它的觀點:

<h2>Id : #{sessionScope['serverObject'].id}</h2> 
<h2>Name : #{sessionScope['serverObject'].name}</h2> 

由於根據新的要求,可以通過在輸入組件中使用隱式EL對象來完成:

Change the name of the server : 
<h:inputText value="#{sessionScope['serverObject'].name}"> 

最後,通過檢索所需對象的支持bean:

public String doSave(){  
    Server server2 = (Server)sessionMap.get("serverObject"); 
    ... 
} 
+0

這有幫助,但沒有其他方式,以便對此視圖所做的更改反映到同一個對象中。 – rehan

+0

答覆已更新。 – Omar