gpt4 book ai didi

包含生成的 JSTL : not interpreted 的 Java 自定义标记

转载 作者:行者123 更新时间:2023-11-30 11:46:01 25 4
gpt4 key购买 nike

我有一个完全没有正文的自定义标签。为了简单起见,我正在尝试以编程方式替换空主体,

[<c:out value="SUCCESS!"/>]

目标是看到使用标记的 JSP 显示的“[SUCCESS!]”,但我看到的只是“[]”,如果查看生成的源代码,我可以看到 c:out声明写在括号之间的页面上,但不被解释。

有没有通用的方法来实现这个?最终目标是使用其他自定义标签而不是“c:out”标签。标签/内容将来自数据库。我用 SimpleTagSupport 和 BodyTagSupport 尝试了不同的技术,但都没有成功。事实上,我不确定这在技术上是否可行,因为当时已经对标签进行了解释。但是那应该怎么做呢?

最佳答案

the JSP is translated into a servlet 时,服务器标签(如您的自定义标签或 JSTL 标签)被转换为 Java 代码.例如,下面的 JSP 代码:

<c:out value="FooBar" />

在 servlet 中被翻译成这样的东西:

....
OutTag outTag = (OutTag) tagHandlerPool.get(OutTag.class);
outTag.setPageContext(pageContext);
outTag.setParent(null);
outTag.setValue(new String("FooBar"));
int evalOut = outTag.doStartTag();
....

在您的自定义标记中,您可以调用其他 Java 类/方法,并可以将 HTML 代码(而非 JSP 代码)写入响应。

[<c:out value="SUCCESS!"/>]不被解释,因为在这个级别它只是一个直接写入响应的字符串。

关于包含生成的 JSTL : not interpreted 的 Java 自定义标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10030169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com