如何创建以属性为变量的自定义标签?
How to create a custom tag with attribute as variable?
我知道如何创建具有类似属性的自定义标签:
<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"
我相信你已经阅读了 Custom Tags in JSP Pages 教程,所以你知道如何声明标签属性和处理程序。然后,提示你的属性是myVar
和count
,你有相应的字段(String myVar
,int count
)和setter(void setMyVar(String myVar)
,void setCount(int count)
) 在你的处理程序中,你需要做的就是在处理程序的 doTag()
方法中添加一个页面上下文属性:
public void doTag() throws JspException, IOException {
// ...
getJspContext().setAttribute(myVar, count);
// ...
}
你可以在 EL 标签后使用它,所以
<my-prefix:mytag myVar="count-loop" count="5"></my-prefix:mytag>
Count: ${count-loop}
将产生以下输出:
Count: 5
我知道如何创建具有类似属性的自定义标签:
<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"
我相信你已经阅读了 Custom Tags in JSP Pages 教程,所以你知道如何声明标签属性和处理程序。然后,提示你的属性是myVar
和count
,你有相应的字段(String myVar
,int count
)和setter(void setMyVar(String myVar)
,void setCount(int count)
) 在你的处理程序中,你需要做的就是在处理程序的 doTag()
方法中添加一个页面上下文属性:
public void doTag() throws JspException, IOException {
// ...
getJspContext().setAttribute(myVar, count);
// ...
}
你可以在 EL 标签后使用它,所以
<my-prefix:mytag myVar="count-loop" count="5"></my-prefix:mytag>
Count: ${count-loop}
将产生以下输出:
Count: 5