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

2022-09-01 10:30:30

我有一个JSP页面,其中包含一个scriiplet,我可以在其中实例化一个对象。我想在不使用任何缓存的情况下将该对象传递给 JSP 标记。

例如,我想完成此操作:

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

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

<wf:my-tag obj=myObject />

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


答案 1

我在这里寻找的一个略有不同的问题:“如何将对象传递给标签文件?

答:使用属性指令的“type”属性:

<%@ attribute name="field" 
              required="true"
              type="com.mycompany.MyClass" %>

该类型默认为 java.lang.String,因此,如果您尝试访问对象字段,则表示它无法从 String 类型中找到该字段,则没有它,您将收到错误。


答案 2
<jsp:useBean id="myObject" class="java.lang.Object" scope="page" />
<wf:my-tag obj="${myObject}" />

不鼓励在 JSP 页面中使用 Scriptlet。它扼杀了模板语言的目的。