2011-11-19 61 views
0

我是初學者使用JSP並遵循教程。我有一個基本問題。有一個名爲NameHandler的簡單類,它只有一個名爲name的String字段。JSP頁面集類的成員如何

的index.jsp是這樣的:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <h1>Entry Form</h1> 
     <form name="Name Input Form" action="response.jsp"> 
      Enter name 
      <input type="text" name="name"/>   
      <input type="submit" value="OK" /> 
     </form> 

    </body> 
</html> 

和response.jsp看起來是這樣的:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body><jsp:useBean id="mybean" scope="session" class="org.mypackage.hello.NameHandler" /> 
     <jsp:setProperty name= "mybean" property= "name"/> 
     <h1>Hello, <jsp:getProperty name="mybean" property="name" />!</h1> 
    </body> 
</html> 

我的問題是這樣的:我想了解這臺名成員NameHandler用戶輸入字符串時的類。這裏name =「name」是什麼意思?我試圖理解這是如何設置類的名稱成員。代碼工作正常,所以在哪裏以及如何設置類的名稱成員?

我也知道我可以使用bean的名稱並調用一個類函數,如<%= beanname.classfunction%>。那麼哪一個更好?第一種方式或第二種方式?有什麼區別。

回答

1

標籤<jsp:setProperty name= "mybean" property= "name"/>的工作原理如下。首先它找到名爲mybean的bean。 property屬性(name你的情況)的需要值,大寫它,並預置set,並構造方法名稱:

String methodName = "get" + str.substring(0, 1).toUpperCase() + str.toLowerCase(str)

然後調用getMethod(methodName)

如果調用成功利用它稱之爲method.invoke()