如何在jsp中实现<mytaglib:$ {foo}>的等价物?</mytaglib:$ {foo}>

时间:2012-07-03 17:31:58

标签: java jsp tags jsp-tags

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

<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实现标签如何获取实现并调用它们?

THX。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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