【问题标题】:Evaluate JSTL from a session bean从会话 bean 评估 JSTL
【发布时间】: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 个不同的模板,我将失去可维护性。

标签: jsp jstl websphere


【解决方案1】:

我不确定这是否会太乏味,但您是否考虑过将自定义标签名称存储在查找数据库表中?然后,您可以在表中查询特定的自定义标记名称,并将任何自定义标记名称插入到需要从 servlet 返回的动态 JSP 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2010-12-02
    • 2011-02-18
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多