如何使用属性作为变量创建自定义标记?

时间:2016-09-23 06:24:37

标签: jsp taglib

我知道如何使用以下属性创建自定义标记:

<my-prefix:mytag count = "5">
content
</my-prefix:mytag>

但我不知道如何使用属性作为变量创建自定义标记,如JSP核心标记库中的<c:set>标记。 类似的东西:

<my-prefix:mytag my-var="count-loop" count = "5">
content
</my-prefix:mytag>

然后我可以使用:

${count-loop} => output "5"

1 个答案:

答案 0 :(得分:1)

我相信您已阅读Custom Tags in JSP Pages教程,因此您知道如何声明标记属性和处理程序。然后,建议您的属性为myVarcount,并且您有相应的字段(String myVarint count)和设置者(void setMyVar(String myVar)void setCount(int count)在你的处理程序中,你需要做的就是在处理程序的doTag()方法中添加页面上下文属性:

public void doTag() throws JspException, IOException {
  // ...
  getJspContext().setAttribute(myVar, count);
  // ...
}

你可以在之后>标签中使用它,所以

<my-prefix:mytag myVar="count-loop" count="5"></my-prefix:mytag>
Count: ${count-loop}

将产生以下输出:

Count: 5