1

所以我们的表单代码中有这个有趣的片段:

<c:choose>
  <c:when test="${'TEXT_QUESTION'==question.type}">
    <mytaglib:textquestion question="${question}"/>
  </c:when>

  <c:when test="${'DATE_QUESTION'==question.type}">
    <mytaglib:datequestion question="${question}"/>
  </c:when>
  .... lots more of this
</c:choose>

我想用这样的东西替换它:

<mytaglib:${question.tag}/>

有没有办法增强 JSP 处理以使该行工作,或者,有没有办法实现 java 标记以达到相同的效果?

<myjavataglib:indirect rendertagname="${question.tag}"/>

具体来说,我的 java 实现的标签如何获取实现并调用它们?

谢谢。

4

2 回答 2

0

您不能在 JSP 标记中使用继承,但这并不意味着您不能在另一个标记中使用一个标记的代码。尝试将您的 textquestion 和 datequestion 标签的所有代码封装在一个模块中,并从您的间接标签中调用该模块。使用参数为您的间接标记提供渲染一个和/或另一个标记所需的所有信息。

于 2012-09-03T07:35:41.363 回答
0

似乎您已经创建了自己的前缀引用的标签库mytaglib。如果您确实创建了自己的库,我只需为问题创建一个通用标签,然后在标签的 Java 中检查问题类型。

于 2012-09-02T16:15:12.930 回答