jsp自定义标签库引用java属性值
发布日期:2021-05-14 12:39:25 浏览次数:29 分类:精选文章

本文共 2696 字,大约阅读时间需要 8 分钟。

自定义JSP标签实现


1. 引入依赖

在项目中引入以下JAR包:

servlet-api.jar
jsp-api.jar

如果找不到,可以在Tomcat的lib目录中查找。或者通过Maven依赖管理:

javax.servlet
javax.servlet-api
3.0.1
javax.servlet.jsp
jsp-api
2.1
provided
javax.servlet.jsp
jstl
1.2

2. 创建自定义标签库

WEB-INF目录下新建一个.tld文件,命名为solid-tags.tld,内容如下:

1.0
1.2
url
com.xinpin.front.web.tag.xpo
empty
fileName
true
true

3. 定义常量接口

创建一个常量接口,定义如下:

package com.xinpin.front.web.constantsUrl;
public interface Url {
String LOGIN_URL = "login.view";
}

4. 实现自定义标签

创建一个JSP标签类,实现如下:

package com.xinpin.front.web.tag;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import com.xinpin.front.web.constantsUrl.Url;
public class xpo extends TagSupport {
private static final long serialVersionUID = -8855151786721428161L;
private String fileName;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public int doStartTag() throws JspException {
try {
Class
cls = Class.forName("com.xinpin.front.web.constantsUrl.Url");
Field urlField = cls.getField(fileName);
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
JspWriter out = pageContext.getOut();
out.println(urlField.get(Url.class));
} catch (IOException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
}
return SKIP_BODY;
}
}

5. 编写JSP页面

创建一个JSP页面,引入自定义标签库:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@taglib uri="/WEB-INF/solid-tags.tld" prefix="xpo" %>
自定义JSP标签示例
文件名:

6. 页面运行结果

页面会输出对应的URL值。例如,运行后页面可能会显示图片或其他相关内容。

上一篇:使用eclipse创建maven多模块项目
下一篇:设计模式 -- 策略模式

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月15日 01时15分45秒