1.首先编写类继承TagSupport 实现doStartTag方法,因为我需要传入角色名称控制标签的内容是否显示。新增一个成员变量roleName。生成get和set方法。 package com.chelement.core.web.tag;
import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport;
public class PermissionTag extends TagSupport {
/**
*
*/
private static final long serialVersionUID = 8439587194052926231L;
// 通过判断角色名称和url是否有对应的
private String roleName;
@Override
public int doStartTag() throws JspException {
// if you have the role should EVAL_BODY_INCLUDE EVAL_BODY_INCLUDE
// if u do not have the role you should not show SKIP_BODY
if (roleName.trim().equals("admin")) {
return EVAL_BODY_INCLUDE;
}
return SKIP_BODY;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
}
2.编写tld文件,关键点:在resources目录下创建文件夹META-INF,新建一个tld文件。 内容大致如下: 1.01.1access/demo-tagsaccesscom.chelement.core.web.tag.PermissionTagroleNametrue 第一是URI,第二个是access 。第三个是name ,因为有一个参数,so 我们只有一个attribute,多个就添加多个。
再修改pom文件增加 maven-jar-plugintarget/classes/false 确保tld文件可以打包进入jar。
最后如果其他工程引入这个jar。在jsp中使用如下: 引入标签:
使用标签: 我是小矮人1我是小矮人2我是小矮人3