2013-04-14 38 views
-1

我有一個jsp文件和一個豆文件。我學會類型如何原始數據採用'valueOf'方法轉換和bean屬性設置,但我仍然困惑類類型值的設置方式。下面的代碼將使查詢更清晰。JSP表達式如何設置對象類型的bean屬性

Bean.java:

private Object myObject ; 

    public Object getMyObject() { 
     return myObject; 
    } 

    public void setMyObject(Object myObject) 
    { 
     System.out.println("my object - " + myObject); 

     File file = (File)myObject; 
     System.out.println("path - " + file.getPath()); 

     this.myObject = myObject; 
    } 

的index.jsp:

我對怎麼回事value="<%= file %>"作品相當混亂。 謝謝。

回答

1

文件擴展對象(像所有的類做)。所以上面的代碼只是由JSP容器編譯成類似於

com.Bean aBean = new com.Bean(); 
File file = new File("some path"); 
aBean.setMyObect(file); 

由於文件是對象,因此沒有任何可轉換的東西。

注意jsp:useBeanjsp:setProperty已經過時了一長串的時間。你不應該再使用這些指令。使用MVC控制器(或至少一個自我實現的MVC模式),並使用JSTL和JSP EL訪問由控制器創建並存儲在請求屬性中的bean。該視圖(即JSP)不應創建和填充bean。這不是它的工作。

+0

所以可以說是:值=「<%= file %>‘等同於文件的文件=新的文件(’一些路徑」); aBean.setMyObect(file); –

+0

否。在jsp:setProperty調用之前,文件構造函數在scriptlet中逐字調用。 jsp:setProperty調用等效於調用'aBean.setMyObect(file)'。 –