2012-06-06 65 views
0

我試圖從標準動作獲取jsp中的一個bean對象的屬性值,最初的html表單轉到一個servlet,它在所期望的性質,設置請求對象內的屬性,然後將其轉發到jsp頁面時,JSP通過使用標準的操作會從該屬性的值,但它得到空!:jsp:useBean沒有從bean對象獲取屬性值

豆對象:

public class dog { 
private String bread; 
public String getBread() { 
    return bread; 
} 

public void setBread(String bread) { 
    this.bread = bread; 
} 

} 

小服務器:

 dog d=new dog(); 
     d.setBread("Kizer"); 
     request.setAttribute("bread", d); 
     RequestDispatcher view=request.getRequestDispatcher("index.jsp"); 
     view.forward(request, response); 

的JSP(指數):

< id="person" class="com.example.model.dog" scope="request" /> 

人通過servlet的創建:<jsp:getProperty name="person" property="bread" />

爲什麼返回null?

+0

嘗試在JSP中使用$ {bread.bread}。 – rickz

+0

我想使用標準操作來檢索價值! –

+0

''絕對不是在使用servlet作爲MVC控制器時的「標準動作」。完全刪除它,只需使用'$ {bread.bread}'。另見http://stackoverflow.com/tags/servlets/info順便說一句,它的拼寫[「品種」](http://www.thefreedictionary.com/breed),而不是[「麪包」](http ://www.thefreedictionary.com/bread)。 – BalusC

回答

1

在你的JSP中使用

<jsp:useBean id="bread" class="com.example.model.dog" scope="request" /> 
<jsp:getProperty name="bread" property="bread" /> 
+1

說明:它返回'null'是因爲您正在創建一個名爲'person'的狗的全新實例,而不是重複使用名爲'bread'的servlet設置的那個實例。所以你需要修正'id'指向與servlet設置相同的名字。 – BalusC

0

使用豆ID atrribute是一樣的bean對象。