2011-01-14 124 views
1

我想通過使用「jsp:usebean」從JSP調用Java類的getter方法(返回String值),但它返回空值。我不明白的是爲什麼它不能返回更新的值。Java/Java EE:從JSP調用getter方法

  1. 有人可以對此有所瞭解嗎?

  2. 我應該使用Cookie從JSP獲取值嗎?

+0

你能告訴我你的代碼嗎? – 2011-01-14 05:47:04

+1

絕對不要使用cookie來獲取價值。您可能只需要將日誌記錄級別設置爲DEBUG,以便更清楚地瞭解您的bean發生了什麼。 – jmort253 2011-01-14 05:47:15

回答

4

我不知道你使用的是什麼(Struts中,普通的Servlet等),但本質上,你需要的屬性添加到ServletRequest,如:

class Person { 
    private String firstName; 
    // other fields, getters, setters 
} 

public void method(HttpServletRequest httpServletRequest) { 
    Person p = new Person(); 
    p.setFirstName("Obama"); 
    httpServletRequest.setAttribute("person", p); 
} 

,並在你的JSP :

<jsp:getProperty object="person" property="firstName" /> 

,或者如果您使用JSTL

<c:out value="${person.firstName}"/> 
2

很簡單。

在java中的文件:

package loga; 
class bean{ 

String name; 
public void setName(String Uname) 
{ 
this.name=Uname; 
} 
public void getName() 
{ 
return name; 
} 

在JSP文件,調用此方法如:

<jsp:useBean id="object" class="loga.bean"> 
<jsp:setproperty name="object" property="Name" Value="XXXX"/> 
<jsp:getProperty name="object" property="Name"/> 
</jsp:usebean> 

這裏,屬性指示在Java類的getName()的方法名稱。 要傳遞來自其他控件的值,請使用param屬性並提供控件的名稱。