所以我们在表单代码中有这个快乐的片段:
<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。
答案 0 :(得分:0)
您似乎已经创建了自己的前缀mytaglib
引用的标记库。如果您确实创建了自己的库,我只需为问题创建一个通用标记,并在标记的Java中检查问题类型。
答案 1 :(得分:0)
您不能在JSP标记中使用继承,但这并不意味着您不能在另一个标记中使用一个标记的代码。尝试将textquestion和datequestion标记的所有代码封装在模块中,并从间接标记中调用该模块。使用参数为间接标记提供呈现一个和/或另一个标记所需的所有信息。