使用idea编辑器编写jsp自定义标签的时候,与使用eclipse和mye在配置地方有许多不同。特记录下来以防忘记。

先说说报 unable to complie class for JSP问题的解决方法吧:
    刚开始报错的时候,去网上翻了许多资料,大多讲的方法是:将项目工程下重复的jsp-api.jar和servlet-api.jar包删除。

可我自己的写的jsp自定义标签的demo中并没有重复使用这两个jar包。最后发现,我的问题出在src下建立的jsp自定义标签的解析文件是一个无包的类,所以导致页面一直报错。将其放置在一个包下,并修改所有引用了这个类的地方:jsp文件和.tld文件相应部分,就不会报错了。

下面,我介绍一下使用idea创建一个jsp自定义标签的步骤:

1.在jsp文件中编写自定义标签,自定义标签包含两部分,前缀和后缀,中间用:隔开。

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2018/2/24
  Time: 16:49
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" import="htt01.HelloTag, java.util.*, java.io.*"%>
<%@taglib prefix="sweet" uri="/test" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<sweet:hello></sweet:hello>
</body>
</html>

2.编写标签解析程序:在src下的有名包下建立.java文件作为解析文件用。

package htt01;

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

public class HelloTag extends SimpleTagSupport {@Override
    public void doTag(){JspWriter out = this.getJspContext().getOut();
        try {out.println("hello world");//表示出现自定义标签就自动输出hello world
        } catch (IOException e) {e.printStackTrace();
        }}
}

3.进行相关配置:

右击file-->settings,在搜索框中输入DTDS。

选择schemas and DTDS,在如下页面

点击+号

输入上上张图中2所示的内容至URL中,在下面jar包中勾选上图所示的dtd,.点击apply,再点击ok

(1)在WEB-INF文件下建立xxx.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>test</short-name>

    <tag>
        <name>hello</name>
        <tag-class>htt01.HelloTag</tag-class>
        <body-content>empty</body-content>
    </tag>

    <!-- Invoke 'Generate' action to add tags or functions -->

</taglib>

(2)在web.xml文件中进行相关配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <jsp-config>
        <taglib>
            <taglib-uri>/test</taglib-uri>
            <taglib-location>/WEB-INF/test.tld</taglib-location>
        </taglib>
    </jsp-config>
</web-app>

<taglib-uri></taglib>中写的是xxx.tld文件的xxx部分

<taglib-location></taglib-location>中编写是全路径一般为/WEB-INF/xxx.tld

4.配置完毕后返回.jsp文件页面,首部添加如下代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" import="htt01.HelloTag, java.util.*, java.io.*"%>
<%@taglib prefix="sweet" uri="/test" %>

prefix=".."中跟的是自定义标签的前缀。uri对应的是web.xml中编写的配置文件中的<taglib-uri>/xxx</taglib-uri>中的/xxx。

默认.jsp文件只有

<%@ page contentType="text/html;charset=UTF-8" language="java"%>

所以需要修改。修改完毕后,将demo部署到tomcat服务器,开启服务器,浏览器中输入地址就可以跑的起了。

版权声明:原创文章,转载请注明出处:http://blog.csdn.net/double_sweet1/article/details/79366317

idea:Unable to compile class for JSP , jsp自定义标签问题相关推荐

  1. jsp tag 自定义标签实现按钮的显示

    前些天在一个项目中做了一个最基本的权限管理(标准的权限结构,用户-角色-菜单),后来需要精确地控制到按钮就想到了使用自定义标签(jsp tag)来处理按钮的显示与隐藏. 下面是我参考网上的资料自己写的 ...

  2. 如何在JSP里自定义标签

    自定义标签是用户定义的JSP语言元素.当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web containe ...

  3. jsp 如何自定义标签

    数据库里存储的是long型的时间,现在想输出到jsp页面,由于使用的是jstl标签,而要显示的是可读的时间类型,找来找去有个fmt:formatDate可以转化,但是只能转date型,long型则不可 ...

  4. jsp中用自定义标签实现简单的分页

    昨天学了一天的自定义标签,大概了解了其原理,就写了一个实现简单分页的程序. 1.它是基于我自己写的分页类(Pager)的,其代码如下: package com.neusoft.training.dat ...

  5. jsp使用自定义标签taglib分页系列——SearchForm - cao_david的专栏 - CSDNBlog

    导读: package com.adroit.nidus.taglib.html; import org.apache.struts.validator.ValidatorForm; /** * Ti ...

  6. JSP自定义标签开发与打包

    前言:最近用到JSP的自定义标签,于是到网上寻找资料,结果发现很多的网上教程要么不全要么就是步骤流程错误,尤其是将自定义标签打jar包这一过程,按照网上的教程操作,结果被坑惨了,所以才有现在这一篇博文 ...

  7. JSP GridView --使用自定义标签实现ASP.NET的控件

    JSP用自定义标签实现ASP.net的gridview.datasource组件 第一部分:使用说明 使用过ASP.NET的人都知道,gridview控件功能很强大,使用很方便,提高了开发效率.而且表 ...

  8. JSP自定义标签 函数,实现生日计算年龄

    在Spring+hibernate的框架中,通过生日计算年龄比较麻烦,通过SQL计算年龄也可以实现,还是挺麻烦的,测试过几种方法后,还是在显示层,通过JSP的自定义标签实现比较简单. 1.创建标签的处 ...

  9. JSP自定义标签开发入门

    一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...

  10. jsp中用java写标签id_jsp中自定义标签用法实例分析

    本文实例讲述了jsp中自定义标签用法.分享给大家供大家参考.具体如下: 这里简单的写了一个自定义标签,自己定义标签的好处就是在jsp页面中可以使用自己定义的功能,完全与Java代码分离 1. tld文 ...

最新文章

  1. 深度学习的“瓶颈”与“遛狗”定理
  2. linux apt-get update 和 upgrade 的区别
  3. mininet编程实现交换机规则的插入、删除与修改。_Mysql事务隔离以及MVCC实现原理...
  4. 大话数据结构 06:栈 顺序存储结构
  5. 如何测量程序运行时间?
  6. File “/usr/bin/yum“, line 30 及 File “/usr/libexec/urlgrabber-ext-down“, line 28
  7. rgb颜色查询工具_Web前端页面重构之工具篇(Photoshop)
  8. html兄弟选择器怎么用,兄弟选择器 - 选择后面相邻的所有兄弟元素 - css3普通选择器...
  9. Java面试官最爱问的垃圾回收机制,这位阿里P7大佬分析总结的属实到位
  10. paip.提升用户检验-----列表摘要
  11. [转载]计算机端口详解
  12. 360度 EC11 旋转编码器模块 数字脉冲电位器
  13. crossApp部署到Eclipse
  14. MAC欺骗-通过思科模拟器实现
  15. RJS与ActionView
  16. 各类国外软件国内下载镜像合集
  17. 滑块JS破解/本地识别DLL
  18. Linux编程基础:第一章初识Linux课后习题及自我总结
  19. Deep Anomaly Detection with Deviation Networks 论文笔记
  20. Pycharm安装与入门

热门文章

  1. Linux常见死机原因
  2. 海驾学车过程全揭秘——第十篇:领驾照、办牡丹卡、陪练
  3. C++ Primer 与“类”有关的注意事项总结
  4. 结构化分析和面向对象分析的区别 例子_企业微信和微信的区别在哪里?
  5. syslog介绍(二):Linux下syslog基本配置
  6. python内置函数学习+截取字符串+字符串格式化符号+for循环
  7. 跟妹子玩游戏结果一下日了好多天
  8. 2.Refused to display ‘http:...‘ in a frame because it set ‘X-Frame-Options‘ to ‘deny‘
  9. 惊了!身价 220 亿的地产大亨潘石屹要学 Python 了……
  10. 记报错信息:java.lang.IllegalArgumentException: MALFORMED解决方案