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

例如,我想完成这个:

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

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

<wf:my-tag obj=myObject />

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

===============>>#1 票数:38

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

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

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

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

===============>>#2 票数:11

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

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

===============>>#3 票数:5

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

所以

<wf:my-tag obj="<%= myObject %>" />

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

===============>>#4 票数:3

对我来说,表达式语言只有在我通过将其置于页面上下文中才能访问该变量时才有效。

<%  Object myObject = new Object();
    pageContext.setAttribute("myObject", myObject);
%>
<wf:my-tag obj="${myObject}" />

否则tas收到null。

并且<wf:my-tag obj="<%= myObject %>" />无需额外工作。 此外,<%=%>提供jsp编译时类型验证,而El仅在运行时验证。

===============>>#5 票数:1

您可以使用“<%=%>”直接在标记中获取对象值:

    <wf:my-tag obj="<%= myObject %>"/>

要获取该对象中任何变量的值,您可以使用“obj.parameter”来获取该值:

<wf:my-tag obj="<%= myObject.variableName %>"/>

===============>>#6 票数:0

使用表达式语言:

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

  ask by Joe Bienkowski translate from so

未解决问题?本站智能推荐:

2回复

JSP标记文件可以访问其调用JSP的PageContext吗?

如果我做: 好像我应该能做到: 在myTag.tag内...但当然我不能,因为标签文件无法访问pageContext(相反它可以访问jspContext ...它与调用页面的属性不同pageContext中)。 现在,您可以通过ELScript访问pageContext:
1回复

如何从JSTL / JSP标记中的String []属性获取项目

在普通的JSP中,我可以通过EL ${form.items[0]}获得第一个项目,但是在JSP标记中,同一个表达式会抛出以下异常: javax.el.PropertyNotFoundException:无法在类java.lang.String中找到属性0 ${form.item
1回复

我可以将ArrayList传递给EL表达式吗?

我知道我可以传递字符串和基元。 但是如何传递ArrayList? 片段:
1回复

JSP定制标记中的Spring选择标记

我正在尝试在JSP标记中完成以下任务: select.tag 用法:(mycollectionattribute用@ModelAttribute(“ mycollectionattribute”定义)) 但是,我不知道如何正确地将调用页面中的项目集合映射到此标签。 EL似
1回复

JSP标记文件无法识别#{}语法

在我的JSP页面中,我使用以下行来检索标签: 而且效果很好! 我想在JSP标记文件myTemplate.tag执行相同的myTemplate.tag ,但是在此相同的代码不起作用,它只显示#{mytest.mylabel} 。 模板已正确加载到JSP页面中。 我也尝试过
1回复

如何使JSP包含带有EL的JSPF

如何使用 EL 专门在另一个JSP中包含JSP片段? login.jsp的: fragment.jspf: 或者,是否不可能将片段包含在EL中 ? 我知道很多使用JSTL的例子。 我误解这些技术的相互作用并非不可能。 表达式语言最初是作为JavaServe
1回复

访问jsp bean中设置的列表

在bean“结果”中,设置了一个arrayList“ tempList”。然后将该bean设置为会话。 我必须在JSP页面上获取arrayList元素。 我没有办法获取其元素。 请提出建议。
1回复

如何从JSP中的结果集中检索值

我有这样的情况: 我知道它肯定只会返回一行,并且我想在一个jsp中显示检索到的值,即COLA,COLB和COLC。 我正在尝试 由于查询将仅返回一行,因此我没有将代码放在<forEach>上方。 但是它没有打印这些值,而是出现错误 请让我知道如何在jsp中
1回复

如何在Eclipse中的JSP / JSP标签中获取EL(表达式语言)内容辅助(自动完成)?

有没有办法,通过配置,升级或插件来获得JSP EL表达式的内容辅助? 例如 $ { CTRL + SPACE ... 要么 $ {pageContext中。 CTRL + SPACE ...... 等等...
1回复

如何将表达式语言(EL)的double或float值转换为int而不进行舍入?

我在JSP中使用表达式语言(EL)。 如你所见,我正在计算不。 需要显示x的页面。 每页的结果。 从第2行开始,这不能一直工作,即formatNumber标签是我的除法结果的四舍五入,我不想四舍五入。 即对于73个记录,每页20个需要4页,但我得到结果5,因为在第2行它是