【发布时间】:2011-09-05 03:26:34
【问题描述】:
我有一个提供 JSP 的 servlet,我正在尝试从会话 bean 的字符串中输出自定义标签。自定义标签在未经评估的情况下打印出来。如果我将我的自定义标签添加到 JSP,它就像一个魅力,但我不能从会话 bean 动态添加它们。 我已经尝试直接从会话 bean 输出:
<%= sessionBean.getTags() %>
和
<% out.print(sessionBean.getTags()); %>
我已经尝试创建一个自定义标签,它接受一个字符串作为它的属性:
public class JSTLOut extends TagSupport {
String value;
public void setValue(String value) {
this.value = value;
}
public int doStartTag() {
try {
JSPWriter out = pageContext.getOut();
if (value != null) {
out.print.(value);
}
catch(IOException ioe) {
// TODO: handle
}
return(SKIP_BODY);
}
}
我试过使用Eval taglib
这个 taglib 导致了 LinkageError,显然不能很好地与 websphere 配合使用。谁能指出我正确的方向?
【问题讨论】:
-
功能需求是什么?您认为这是解决什么问题的方法?
-
我需要将自定义标签从我的 servlet 逻辑动态添加到我的 JSP 中。自定义标签是从后端数据生成的,但是假设我有一个评估为
hello
的标签,我会得到:html> -
为什么不使用 JSP 模板呢?或者这些标签声明是否存储在 HTML 中?为什么?
-
我的标签声明在 .tld 中,我认为模板不会起作用,因为我需要 JSP 完全通用,因为它可以有很多配置。如果我有 40 个不同的模板,我将失去可维护性。