标签:des style blog http io ar os 使用 sp
作者:禅楼望月

| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| value | 要输出的内容 | 是 | 无 |
| default | 输出的默认值 | 否 | 主体中的内容 |
| escapeXml | 是否忽略XML特殊字符 | 否 | true |
<div><b>Tip of the Day:</b><br/><br/><c:outvalue="${pageContent.rawHTML}"escapeXml="true"/></div>
escapeXml默认值为true。| 字符 | 字符实体码 |
| < | < |
| > | > |
| & | & |
| ‘ | ' |
| " | " |
<c:out value="<hr>原样输出HTML标签<hr>" escapeXml="true"/><br><c:out value="<hr>转换HTML标签并输出<hr>" escapeXml="false"/> 
使用EL输出用户输入的内容会存在"跨域攻击"的危险value值为NULL时,默认值 <c:outvalue="${null }"default="houhou"></c:out><br><c:forEach>标签有如下属性:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| items | 要被循环的信息 | 否 | 无 |
| begin | 开始的元素(0=第一个元素,1=第二个元素) | 否 | 0 |
| end | 最后一个元素(0=第一个元素,1=第二个元素) | 否 | Last element |
| step | 每一次迭代的步长 | 否 | 1 |
| var | 代表当前条目的变量名称 | 否 | 无 |
| varStatus | 代表循环状态的变量名称 | 否 | 无 |
package jstl;import java.io.IOException;import javax.servlet.*;import javax.servlet.http.*;publicclass jstlServlet extendsHttpServlet{publicvoid doGet(HttpServletRequest request,HttpServletResponse response)throwsServletException,IOException{ response.setContentType("text/html");String[] movieList={"A","B","C"}; request.setAttribute("movieList", movieList); getServletContext().getRequestDispatcher("/UseJSTL.jsp").forward(request, response);}publicvoid doPost(HttpServletRequest request,HttpServletResponse response)throwsServletException,IOException{ doGet(request, response);}}<%@ page language="java"import="java.util.*" pageEncoding="utf-8" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head></head><body><table><c:forEachvar="movie"items="${movieList }"><tr><td>${movie }</td></tr></c:forEach></table></body></html>

<tablestyle="border:solid 1px red"><c:forEachvar="movie"items="${movieList }"varStatus="movieLoopCount"><tr><tdstyle="border:solid 1px red">${movie}</td><tdstyle="border:solid 1px red">count:${movieLoopCount.count }</td></tr></c:forEach></table>






<c:if>标签有如下属性:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| test | 条件 | 是 | 无 |
| var | 用于存储条件结果的变量 | 否 | 无 |
| scope | var属性的作用域 | 否 | page |




该标签没有else属性。那么怎么来表示if……else……呢?<c:when>标签的属性如下:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| test | 条件 | 是 | 无 |

<c:set>标签有如下属性:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| value | 要存储的值 | 否 | 主体的内容 |
| target | 要修改的属性所属的对象 | 否 | 无 |
| property | 要修改的属性 | 否 | 无 |
| var | 存储信息的变量 | 否 | 无 |
| scope | var属性的作用域 | 否 | Page |


<c:set> 要点<c:remove>标签有如下属性:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| var | 要移除的变量名称 | 是 | 无 |
| scope | 变量所属的作用域 | 否 | 所有作用域 |
<c:import>标签有如下属性:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| url | 需要检索和引入的页面的URL | 是 | 无 |
| context | / 紧接着一个本地网络应用程序的名称 | 否 | 当前应用程序 |
| charEncoding | 所引入的数据的字符编码集 | 否 | ISO-8859-1 |
| var | 用于存储所引入的文本的变量 | 否 | Print to page |
| scope | var属性的作用域 | 否 | Page |
| varReader | 可选的用于提供java.io.Reader对象的变量 | 否 | 无 |

<c:param>标签用于在<c:url>标签中指定参数,而且与URL编码相关。
在<c:param>标签内,name属性表明参数的名称,value属性表明参数的值。
<c:param>标签有如下属性:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| name | URL中要设置的参数的名称 | 是 | 无 |
| value | 参数的值 | 否 | Body |
<c:url>标签有如下属性:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| value | 基础URL | 是 | 无 |
| context | 本地网络应用程序的名称 | 否 | 当前应用程序 |
| var | 代表URL的变量名 | 否 | Print to page |
| scope | var属性的作用域 | 否 | Page |


<c:url>不会自动对URL编码。


问题来了---->我是不是得花很大的功夫为每一个jsp配置错误页面呢?如果想为不同的错误制定不同的错误页面怎办呢?




自己能通过程序生成错误码吗?<c:catch>标签有如下属性:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| var | 用来储存错误信息的变量 | 否 | None |



<c:forTokens>标签与<c:forEach>标签有相似的属性,不过<c:forTokens>还有另一个属性:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| delims | 分隔符 | 是 | 无 |

c:redirect标签有如下属性:
| 属性 | 描述 | 是否必要 | 默认值 |
|---|---|---|---|
| url | 目标URL | 是 | 无 |
| context | 紧接着一个本地网络应用程序的名称 | 否 | 当前应用程序 |

怎么知道属性的类型呢?
标记体<body-content>里面能放什么内容呢?
对于<body-content>内容为empty,我们怎么调用标记?
容器在那些地方查找TLD呢?<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd"><taglib><tlib-version>1.0</tlib-version><jsp-version>1.2</jsp-version><short-name>RandomTags</short-name><uri>randomThings</uri><description> A simple tab library for the examples</description><tag><name>advice</name><tag-class>jstl.AdvisorTagHandler</tag-class><body-content>empty</body-content><description> random advice</description><attribute><name>user</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag></taglib>
注意:再采用EL函数时,要创建一个有公共静态方法的Java类,并且该方法的名字可以自己取,再在TLD中映射即可,但是在利用定制标记是,该方法名不能自定义,只能是doTag。判断集合和对象是否为空:
list为集合,user为对象名
<c:if test="${empty user}">无user信息!TODO...</c:if>为空
<c:if test="${!empty list}">list集合不为空判断,TODO...</c:if>非空
<s:if test="null==user||user.isEmpty()">
集合为空
</s:if><s:else>
集合不为空
</s:else>
or
<s:if test="null!=user&&!user.isEmpty()">
集合不为看空
</s:if>
标签:des style blog http io ar os 使用 sp
原文地址:http://www.cnblogs.com/yaoyinglong/p/JSTL.html