Java JSP表达式如何设置对象类型的bean属性

Java JSP表达式如何设置对象类型的bean属性,java,jsp,javabeans,usebean,Java,Jsp,Javabeans,Usebean,我有一个jsp文件和一个bean文件。我了解了如何使用'valueOf'方法转换基本数据类型并设置bean属性,但是我仍然不清楚类类型值是如何设置的。下面的代码将使查询更加清晰 Bean.java: private Object myObject ; public Object getMyObject() { return myObject; } public void setMyObject(Object myObject) {

我有一个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;
    }
    <jsp:useBean id="aBean" class="com.Bean" />    
        <%
            File file = new File("some path");
        %>
  <jsp:setProperty name="aBean" property="myObject" value="<%= file %>" />
Index.jsp:

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

我对
value=”“
的工作原理非常困惑。 谢谢。

文件扩展对象(就像所有类一样)。因此,上面的内容只是由JSP容器编译成

com.Bean aBean = new com.Bean();
File file = new File("some path");
aBean.setMyObect(file);
因为文件是一个对象,所以没有什么可转换的


请注意,
jsp:useBean
jsp:setProperty
已经过时很久了。你不应该再使用这些指令了。使用MVC控制器(或者至少是一个自实现的MVC模式),并使用JSTL和JSPEL访问由控制器在请求属性中创建和存储的bean。视图(即JSP)不应该创建和填充bean。这不是它的工作。

所以可以说:value=”“相当于File File=new File(“某个路径”);aBean.setMyObect(文件);不可以。文件构造函数在scriptlet中被逐字调用,就在jsp:setProperty调用之前。jsp:setProperty调用相当于调用
aBean.setMyObect(文件)