如何将对象传递给JSP标记?

Joe*_*ski 25 java jsp jsp-tags el

我有一个JSP页面,其中包含一个scriplet,我在其中实例化一个对象.我想将该对象传递给JSP标记而不使用任何缓存.

例如,我想完成这个:

<%@ taglib prefix="wf" uri="JspCustomTag" %>

<% 
 Object myObject = new Object();
%>

<wf:my-tag obj=myObject />
Run Code Online (Sandbox Code Playgroud)

我试图避免直接与任何缓存(页面,会话,servletcontext)交互,我宁愿让我的标签处理.

dfr*_*kow 38

我在这里查找的问题略有不同:"如何将对象传递给标记文件?"

答案:使用属性指令的"type"属性:

<%@ attribute name="field" 
              required="true"
              type="com.mycompany.MyClass" %>
Run Code Online (Sandbox Code Playgroud)

该类型默认为java.lang.String,因此如果您尝试访问对象字段,表示无法从String类型中找到该字段,则会出现错误.


Ade*_*ari 11

<jsp:useBean id="myObject" class="java.lang.Object" scope="page" />
<wf:my-tag obj="${myObject}" />
Run Code Online (Sandbox Code Playgroud)

不鼓励在JSP页面中使用Scriptlets.它杀死了模板语言的目的.

  • 1."页面"范围豆有什么问题?这里没有序列化.为什么你这么想? (2认同)

Gar*_*our 5

原始语法是重用'<%=%>'

所以

<wf:my-tag obj="<%= myObject %>" />
Run Code Online (Sandbox Code Playgroud)

有关示例,请参阅Sun Tag Library Tutorial的这一部分


Bri*_*ews 0

使用表达语言:

    <wf:my-tag obj="${myObject}" />