jsp_04 自定义标签

JSP自定义标签:

自定义标签是用户定义的JSP语言元素。

JSP标签扩展可以让你创建新的标签并且可以直接插入到一个JSP页面。

可以继承SimpleTagSupport类并重写的doTag()方法来开发一个最简单的自定义标签。


接下来,我们想创建一个自定义标签叫作<ex:Hello>,标签格式为:<ex:Hello/>的三个步骤:

1. 创建处理标签的Java类:


import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;

public class HelloTag extends SimpleTagSupport {

  public void doTag() throws JspException, IOException {
    JspWriter out = getJspContext().getOut();
    out.println("Hello Custom Tag!");
  }
}


2.创建标签库 <Tomcat安装目录>webapps\ROOT\WEB-INF\helloTag.tld。

<?xml version="1.0" encoding="ISO-8859-1"?>

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
        version="2.1">

    <tlib-version>1.0</tlib-version>
    <short-name>Example TLD</short-name>

    <!--定义第一个标签 -->
    <tag>
        <!-- 定义标签名 -->
        <name>Hello</name>
        <!-- 定义标签处理类 -->
        <tag-class>MyJsp.HelloTag</tag-class>
        <!-- 定义标签体为空 -->
        <body-content>empty</body-content>
    </tag>
</taglib>


3.在JSP文件中使用helloTag标签:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="ex" uri="WEB-INF/helloTag.tld"%>
<html>
<head>
    <title>自定义tag实例</title>
</head>
<body>
<ex:Hello/>
</body>
</html>




自定义标签属性:

1.创建处理标签的java类

package MyJsp;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;
import java.io.StringWriter;

/**
 * Created by 1192126986 on 2017/1/25.
 */
public class HelloTag extends SimpleTagSupport {
    private String message;
    StringWriter sw=new StringWriter();

    public void setMessage(String message){
        this.message=message;
    }

    @Override
    public void doTag() throws JspException, IOException {
        if(message!=null){
            //从标签属性中使用信息
            JspWriter out=getJspContext().getOut();
            out.println(message);
        }else{
            //从标签体中使用信息
            getJspBody().invoke(sw);
            JspWriter out=getJspContext().getOut();
            out.println(sw.toString());
        }

}
}


2.创建标签库:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- 标签库定义 -->
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
        version="2.1">

    <tlib-version>1.0</tlib-version>
    <short-name>Example TLD</short-name>

    <!--定义第一个标签 -->
    <tag>
        <!-- 定义标签名 -->
        <name>Hello</name>
        <!-- 定义标签处理类 -->
        <tag-class>MyJsp.HelloTag</tag-class>
        <!-- 定义标签体为空 -->
        <body-content>scriptless</body-content>
        <!-- 自定义标签属性 -->
        <attribute>
            <!-- name 属性  描述:定义属性的名称 -->
            <name>message</name>
        </attribute>
        <attribute>
            <name>attribute_name</name>
            <!-- required 属性  描述:指定属性是否是必须的或是可选的 false为可选的 -->
            <required>false</required>
            <!-- type属性  描述:指定属性的java类型 默认为String -->
            <type>java.lang.Boolean</type>
            <!-- fragment 属性  描述:如果声明了该属性,属性值将被视为一个 JspFragment -->
            <fragment>false</fragment>
        </attribute>
    </tag>
</taglib>


3.在JSP文件中使用标签

<%--
  Created by IntelliJ IDEA.
  User: 1192126986
  Date: 2017/1/25
  Time: 22:33
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="ex" uri="WEB-INF/helloTag.tld" %>
<html>
<head>
    <title>自定义tag实例</title>
</head>
<body>
<ex:Hello message="This is a tag!"/>
</body>
</html>



成都市作为中国西部地区具有战略地位的核心都市,其人口的空间分布状况对于城市规划、社会经济发展及公共资源配置等研究具有基础性数据价值。本文聚焦于2019年度成都市人口分布的空间数据集,该数据以矢量格式存储,属于地理信息系统中常用的数据交换形式。以下将对数据集内容及其相关技术要点进行系统阐述。 Shapefile 是一种由 Esri 公司提出的开放型地理空间数据格式,用于记录点、线、面等几何要素。该格式通常由一组相互关联的文件构成,主要包括存储几何信息的 SHP 文件、记录属性信息的 DBF 文件、定义坐标系统的 PRJ 文件以及提供快速检索功能的 SHX 文件。 1. **DBF 文件**:该文件以 dBase 表格形式保存与各地理要素相关联的属性信息,例如各区域的人口统计数值、行政区划名称及编码等。这类表格结构便于在各类 GIS 平台中进行查询与编辑。 2. **PRJ 文件**:此文件明确了数据所采用的空间参考系统。本数据集基于 WGS84 地理坐标系,该坐标系在全球范围内广泛应用于定位与空间分析,有助于实现跨区域数据的准确整合。 3. **SHP 文件**:该文件存储成都市各区(县)的几何边界,以多边形要素表示。每个多边形均配有唯一标识符,可与属性表中的相应记录关联,实现空间数据与统计数据的联结。 4. **SHX 文件**:作为形状索引文件,它提升了在大型数据集中定位特定几何对象的效率,支持快速读取与显示。 基于上述数据,可开展以下几类空间分析: - **人口密度评估**:结合各区域面积与对应人口数,计算并比较人口密度,识别高密度与低密度区域。 - **空间集聚识别**:运用热点分析(如 Getis-Ord Gi* 统计)或聚类算法(如 DBSCAN),探测人口在空间上的聚集特征。 - **空间相关性检验**:通过莫兰指数等空间自相关方法,分析人口分布是否呈现显著的空间关联模式。 - **多要素叠加分析**:将人口分布数据与地形、交通网络、环境指标等其他地理图层进行叠加,探究自然与人文因素对人口布局的影响机制。 2019 年成都市人口空间数据集为深入解析城市人口格局、优化国土空间规划及完善公共服务体系提供了重要的数据基础。借助地理信息系统工具,可开展多尺度、多维度的定量分析,从而为城市管理与学术研究提供科学依据。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值