Java JSP表达式如何设置对象类型的bean属性
我有一个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) {
'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(文件)
。