jsp实现无脚本。之前讲到"el,动作指令"和“jstl”可以帮助实现无脚本----大部分时间够用了。可要比较完美的实现所谓的无脚本,还需要定制标记。今天就说这事。
jsp2.0新添加了2种标记----简单标记&标记文件,先说说简单标记。
1 创建简单标记关键点:tld文件,标记处理器;怎么使用;
(1)tld文件, 在我看来类似于配置文件,后缀名.tld;作用是:申明(或者说定义)标记的uri,属性等。
下面创建create first
看清楚,新鲜出炉的图O(∩_∩)O哈哈~。
(2)处理器
这个类需要继承SimpleTagSupport类;看下图关系;
packpage foo;
public class test extends SimpleTagSupport{
String phone;
public void doTag() throws JspExption ,IOException{
getJspContent().getOut().write("hello, this is my tag!");//打印出来;}
public String setPhone(String p){
this.phone=p;
}
}
(3)使用简单标记
jsp中:
打印结果为:
show text 110
上面只是简单的演示一个过程,下面看看细节;
2 定制标记details
@ simpleTagSupport方法说起
(1)void setJspBody(JspFragment f) & JspFragment setJspBody(JspFragment f);
作用: 获取或者设置标记的体;
一个例子:
jsp中:
<mine:advice phone="110">
nihao;jsp
</mine:advice>
tld中
<body-content>scriptless</body-content>//不能为empty:没体
simpleTagSupport中
doTage(){
getJspBody().invoke(null);//将体中的内容响应输出;
}
(2)getJspContext();
可以用来获取pageContext实例的一个JspContext的引用(2个类是父子关系)。
@怎么实现循环?看下面一张图
上图可以看出,movice属性本来不存在也好,在for中设置,每一个movice的值都是不一样的,而且会循环打印。
——————————————————————————————————————————————————————————————————————
入门是总结, 有不少细节没提到。下次我们聊聊“标记文件”;