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

标签

概述:

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

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

格式

JSP动作标签的格式:

常用内置标签

标签的作用是用来包含其它JSP页面的!

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

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

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

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

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

还可以在标签中使用子标签,它是用来传递参数的。

自定义标签

JSP总结(三):标签,EL表达式_第1张图片

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

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

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

具体步骤:

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

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

标签库描述文件tld:


        
        demo2
        
        me.gacl.web.simpletag.SimpleTagDemo2
        
        scriptless

元素的可选值有:

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

 

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

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

EL表达式

参考文章

jsp标签

自定义标签开发

传统标签开发

简单标签开发(一)

简单标签开发(二)

你可能感兴趣的:(JavaWeb,jsp)