使用maven 基于jar包方式开发jsp自定义标签

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文件。 内容大致如下: <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>access</shortname> <uri>/demo-tags</uri> <tag> <name>access</name> <tagclass>com.chelement.core.web.tag.PermissionTag</tagclass> <attribute> <name>roleName</name> <required>true</required> </attribute> </tag> </taglib> 第一是URI,第二个是access 。第三个是name ,因为有一个参数,so 我们只有一个attribute,多个就添加多个。

再修改pom文件增加 <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> <classesDirectory>target/classes/</classesDirectory> <archive> <addMavenDescriptor>false</addMavenDescriptor> </archive> </configuration> </plugin> 确保tld文件可以打包进入jar。

最后如果其他工程引入这个jar。在jsp中使用如下: 引入标签: <%@taglib prefix="test" uri="/demo-tags"%>

使用标签: <test:access roleName="admin">我是小矮人1</test:access> <test:access roleName="channel">我是小矮人2</test:access> <test:access roleName="admin">我是小矮人3</test:access>

转载于:https://my.oschina.net/payzheng/blog/423924

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值