Review_JSP(其中包括自定义标签)

原创 2007年10月08日 16:40:00

1.JSTL表达式语言负责处理表达式和文字。表达式由${ }字符所包围。

2.include指令和jsp:include动作  :include指令是在JSP文件被转换成Servlet的时候引入文件,而这里的jsp:include动作不同,插入文件的

时间是在页面被请求的时候。jsp:include动作的文件引入时间决定了它的效率要稍微差一点,而且被引用文件不能包含某些JSP代码(例如不

能设置HTTP头),但它的灵活性却要好得多。

3.RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:前者仅是容器中控制权的转向,在客户端浏览器

地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可

以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助

于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 HttpServletResponse.sendRequest()方法。

4.自定义标签:

iterateTag.java
public class iterateTag extends BodyTagSupport{
    private String name;//在pageContext中标识的一个属性名
    private Iterator it;//要迭代的对象
    private String type;//it中对象的类型
    Collection collection;
    public void setCollection(Collection collection){
        if(collection.size()>0)
            it=collection.iterator();
    }
    //----标签开始时调用此方法-------
    public int doStartTag(){
        if(it==null) return SKIP_BODY;
        else return continueNext(it);
    }
    //----标签体执行完后调用此方法----
    public int doAfterBody(){
        return continueNext(it);
    }
    //----标签结束时调用此方法-------
    public int doEndTag(){
        try{
            if(bodyContent!=null)
                bodyContent.writeOut(bodyContent.getEnclosingWriter());
        }catch(Exception e){
            System.out.println(e);
        }
        return EVAL_PAGE;
    } 
    //----迭代----
    protected int continueNext(Iterator it){
        if(it.hasNext()){
            pageContext.setAttribute(name,it.next(),PageContext.PAGE_SCOPE);
            return EVAL_BODY_AGAIN;
        }else return SKIP_BODY;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
 /**
  * @return Returns the collection.
  */
 public Collection getCollection() {
  return collection;
 }
}

IterateTEI.java   //TagExtraInfo用于提供编译时标签的额外信息,为脚本变量定义的标签额外信息类必须在TLD中声明,这样元素tei-

class将会如下:<tei-class>XXXX.XXXXTei</tei-class>

public class IterateTEI extends TagExtraInfo {
    public IterateTEI() {
        super();
    }
    public VariableInfo[] getVariableInfo(TagData data){
        return new VariableInfo[]{
                new VariableInfo(data.getAttributeString("name"),
                        data.getAttributeString("type"),
                        true,VariableInfo.NESTED)             
        };
    }
}

XXX.tld 中的部分配置:
<!-- iterateTag-->
    <tag>
   
      <name>iterateTag</name>

      <tag-class>com.format.iterateTag</tag-class>
      <tei-class>com.format.IterateTEI</tei-class>

      <body-content>JSP</body-content>
      <attribute>
       <name>collection</name>
       <required>true</required>
       <rtexprvalue>true</rtexprvalue>
      </attribute>
      <attribute>
       <name>name</name>
       <required>true</required>
      </attribute>
      <attribute>
       <name>type</name>
       <required>true</required>
      </attribute>
    </tag>
jsp调用:
<%//----------设置一个ArrayList对象的初始值----------
   ArrayList testCol=new ArrayList();
   testCol.add("abc");
   testCol.add("bcd");
   testCol.add("add");
   request.setAttribute("testCol",testCol);

  %>
  <csai:iterateTag name="testColOne" collection="<%=testCol%>" type="String">
   输出一个值:out.println("testColOne")<br>
  </csai:iterateTag> 

struts2标签库——UI标签

1、要使用标签,必须修改web.xml,让控制器拦截所有请求 /* 2、Struts 2提供了功能强大的标签库,JSP页面导入标签库: ” 3、设置用户界面主题,默认值为xhtml风格 ...
  • cuifugang124428
  • cuifugang124428
  • 2014年03月14日 23:05
  • 1542

Thymeleaf 3.0 自定义标签方言属性,简单实例。快速学习!

此篇文章内容仅限于 描述 thy3.0 自定义标签的说明,所以你在看之前,请先会使用它。 直奔主题,以下代码是如何引用 第三方标签的。说明: shrioDialect 是Shiro 官方为thy开...
  • Qensq
  • Qensq
  • 2017年02月16日 14:23
  • 6082

JSP自定义标签由浅到深详细讲解(全)

一、基本概念 1.标签(Tag):   标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的...
  • sinat_29581293
  • sinat_29581293
  • 2016年07月18日 10:40
  • 4081

jsp自定义标签

  • 2017年07月09日 23:49
  • 11KB
  • 下载

JSP自定义标签

  • 2015年04月16日 15:29
  • 60KB
  • 下载

JSP自定义标签源码

  • 2013年03月13日 16:01
  • 115KB
  • 下载

jsp中自定义标签的使用

  • 2008年10月19日 14:21
  • 22KB
  • 下载

jsp分页查询+自定义标签

  • 2008年11月02日 10:25
  • 752KB
  • 下载

JSP 自定义标签(清华IT)PPT (适用于有一定编程基础的人员)

  • 2009年04月22日 14:33
  • 268KB
  • 下载

jsp自定义标签实例

  • 2011年09月08日 16:17
  • 7KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Review_JSP(其中包括自定义标签)
举报原因:
原因补充:

(最多只允许输入30个字)