JSP Expression如何设置Object类型的bean属性

时间:2013-04-14 13:21:35

标签: java jsp javabeans usebean

我有一个 jsp文件和一个 bean文件。我学会了如何使用'valueOf'方法转换原始数据类型并设置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:

    <jsp:useBean id="aBean" class="com.Bean" />    
        <%
            File file = new File("some path");
        %>
  <jsp:setProperty name="aBean" property="myObject" value="<%= file %>" />

我对事物value="<%= file %>"的工作原理感到困惑。 感谢。

1 个答案:

答案 0 :(得分:1)

文件扩展Object(就像所有类一样)。所以上面的内容只是由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。那不是它的工作。