/**
* 生成<base href="xxx"/>标签
* @author zhaohuihua
*/
public class BaseTag extends TagSupport {
private static final String BASE = "<base href=\"{0}://{1}:{2}{3}/\" />";
@Override
public int doEndTag() throws JspException {
// 获取请求对象
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
// 获取各项请求参数
String scheme = request.getScheme();
String host = request.getServerName();
String port = String.valueOf(request.getServerPort());
String path = request.getContextPath();
// 生成<base>标签
String base = MessageFormat.format(BASE, scheme, host, port, path);
try {
// 输出<base>标签
JspWriter out = pageContext.getOut();
out.println(base);
} catch (IOException e) {
e.printStackTrace();
}
return EVAL_PAGE;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>2.2.3</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>zhh</short-name>
<uri>/zhh-tags</uri>
<display-name>"user defined tags"</display-name>
<tag>
<name>base</name>
<tag-class>zhh.tags.BaseTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
<%@ taglib prefix="z" uri="/zhh-tags"%>
<head>
<z:base/>
...
</head>