|
1.编写一个实现tag 接口java类(标签处理器类)
2.编写标签库描述符 (tld) 文件,在tld 文件中对标签处理器类进行描述。
为了 移除java 代码
在web层 建立一个 com.renxing.web.tag 的包 这个包存在了所有关于项目的 自定义标签
建立一个类 ViewIP 集成 extends TagSupport (是JSP Tag 的孙子 子类子类的)
然后覆盖想覆盖的方法!
隐含的一点是: 也是值得注意的在.jsp 代码执行者个标签的时候自动会把 pageContext 给这个标签
也就是蕴含了 8大隐含对象!
public class ViewIP extends TagSupport
{
@Override
public int doStartTag() throws JspException {
HttpServletRequest request=(HttpServletRequest) this.pageContext.getRequest();
JspWriter out=(JspWriter)this.pageContext.getOut();
String ip=request.getRemoteAddr();
try {
out.write(ip);
} catch (IOException e) {
throw new RuntimeException("error");
}
return super.doStartTag();
}
}
这还没有完!
还需要一个 tld 的文件 进行支持!
在项目的web-inf的文件夹 建立一个 tag.tld的文件
怎么写呢? 抄:
打开tomcat 在apache-tomcat-6.0.32\webapps\examples\WEB-INF\jsp2
这个文件夹里的 抄
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>SimpleTagLibrary</short-name>
<uri>/tag</uri>
<tag>
<description>显示IP</description>
<name>viewip</name>
<tag-class>com.renxing.web.tag.ViewIP</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
保存
在 index.jsp 页面将以前 利用<% request.getRemoteAddr();...等等去掉%>
------------
导入自定义标签库
<%@taglib uri="/tag" prefix="rx"%>
在jsp 页面上写上
您的ip地址是<rx:viewip/>
然后在访问 8080 如果运行不出来 就是你笨!~~ |
|