2012-06-06 25 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对象。