JSP总结(三):标签,EL表达式

标签

概述:

动作标签的作用是用来简化Java脚本,让jsp页面尽量不出现Java代码。也称为jsp动作元素。

JavaWeb一共提供了20个JSP动作标签,但有很多基本没有用,这里只介绍一些有作用的动作标签。如果不够用还可以自定义标签。

格式

JSP动作标签的格式:<jsp:标签名 …>

常用内置标签

<jsp:include>

<jsp:include>标签的作用是用来包含其它JSP页面的!

包含标签和包含指令的区别:

include指令是在编译级别完成的包含,即把当前JSP和被包含的JSP合并成一个JSP,然后再编译成一个Servlet。

include动作标签是在运行级别完成的包含,即当前JSP和被包含的JSP都会各自生成Servlet,然后在执行当前JSP的Servlet时完成包含另一个JSP的Servlet。它与RequestDispatcher的include()方法是相同的!

其实<jsp:include>在“真身”中不过是一句方法调用,即调用另一个Servlet的_jspService()而已。

<jsp:forward>

forward标签的作用是请求转发!forward标签的作用与RequestDispatcher#forward()方法相同。

<jsp:param>

还可以在<jsp:include>和<jsp:forward>标签中使用<jsp:param>子标签,它是用来传递参数的。

自定义标签

JspTag是所有标签类的父接口,没有任何属性和方法,只是jsp2.0引入的一个标记接口。

其中,一般称Tag接口是传统标签,Simp了Tag是简单标签。

实际开发中编写一个类,继承SimpleTagSupport类,重写其中的doTag()方法。

具体步骤:

1、编写一个类继承SimpleTagSupport类,然后根据业务需要重写SimpleTagSupport类中已经实现了的方法,一般情况下只需要重写doTag()方法即可。

2、在WEB-INF目录下创建一个tld文件,在tld文件中添加对该标签的描述。tld文件不一定放在WEB-INF目录下,也可以放在别的目录,习惯是放在WEB-INF目录下。

标签库描述文件tld:

<tag>
        <!-- 标签名 -->
        <name>demo2</name>
        <!-- 标签处理器类-->
        <tag-class>me.gacl.web.simpletag.SimpleTagDemo2</tag-class>
        <!-- 标签体允许的内容 ,scriptless表示标签体的内容不允许是java脚本代码-->
        <body-content>scriptless</body-content>
</tag>

<body-content>元素的可选值有:

  • empty:无标签体。
  • JSP:传统标签支持它,SimpleTag已经不再支持使用<body-content>JSP</body-content>标签体内容可以是任何东西:EL、JSTL、<%=%>、<%%>,以及html;
  • scriptless:标签体内容不能是Java脚本,但可以是EL、JSTL等。在SimpleTag中,如果需要有标签体,那么就使用该选项
  • tagdependent:标签体内容不做运算,由标签处理类自行处理,无论标签体内容是EL、JSP、JSTL,都不会做运算。这个选项几乎没有人会使用!

 

自定义有标签体的标签需要:

  • 获取标签体对象:JspFragment jspBody = getJspBody();;
  • 把标签体内容输出到页面:jspBody.invoke(null);
  • tld中指定标签内容类型:scriptless。

EL表达式

参考文章

jsp标签

自定义标签开发

传统标签开发

简单标签开发(一)

简单标签开发(二)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值