您的位置:首页 > Web前端 > JavaScript

jsp标签

2016-06-05 16:54 323 查看


jsp标签


jsp标签作用

替换jsp脚本


jsp标签分类

内置标签(动作标签): 不需要在jsp页面导入标签
jstl标签: 需要在jsp页面中导入标签
自定义标签 : 开发者自行定义,需要在jsp页面导入标签


动作标签(重要的三个)


转发标签: <jsp:forward />

标签用于把请求转发给另外一个资源
<jsp:forward page="relativeURL | <%=expression%>" />
page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个 表达式来获得。


参数标签: <jsp:pararm/>

当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资 源时,可以使用<jsp:param>标签向这个资源传递参数
<jsp:include page="relativeURL | <%=expression%>">
<jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>


包含标签: <jsp:include/>

语法
<jsp:include page="relativeURL | <%=expression%>" flush="true|false"/>
<!--向被包含页面传的参数-->
<jsp:param name="参数名称" value="参数值"/>
</jsp:include>
<!-- page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来
获得。-->
<!--flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输
出的内容刷新到客户端,默认为false。-->


原理: 包含与被包含的页面先各自翻译成java源文件,然后再运行时合并在一起。 (先翻译再合并),动态包含

静态包含 vs 动态包含的区别?

语法不同
静态包含语法: <%@inclue file="被包含的页面"%>
动态包含语法: <jsp:include page="被包含的页面">

参数传递不同
静态包含不能向被包含页面传递参数
动态包含可以向被包含页面传递参数

原理不同
静态包含: 先合并再翻译
动态包含: 先翻译再合并


其他的动作标签(不常使用)


<jsp:useBean>

创建一个Bean实例
语法

不存在Body的格式

<jsp:useBean
id="变量名"
scope"page|request|session|application"--Bean实例范围,属于那个域,默认是page域
{
class="package.className"--完整的类名不能与beanName同时存在,没有它时必须设置type|
type="数据类型"--指定创建实例的本身或类的父类或者接口|
beanName--指定完整的类名,可以是一个表示完整类名的表达式
}
/>
<jsp:setProperty name="变量名" property="*"/>


在Body内写入内容的格式

<jsp:useBean id="变量名" scope="JSP范围">
<jsp:setProperty name="变量名" property="*"/>
</jsp:useBean>


<jsp: setProperty>

通常与<jsp: useBean>一起使用,它将调用Bean中的setXxx();


<jsp: getProperty>

用来从指定的Bean中读取指定的属性值,Bean中必须有getXxx()方法


JSTL标签


介绍

JSTL (全名:java standard tag libarary - java标准标签库 )

核心标签库 (c标签库) 天天用
国际化标签(fmt标签库)
EL函数库(fn函数库)
xml标签库(x标签库)
sql标签库(sql标签库)


使用JSTL标签步骤

导入jstl支持的jar包(标签背后隐藏的java代码)

注意:使用javaee5.0的项目自动导入jstl支持jar包

使用taglib指令导入标签库

<%@taglib uri="tld文件的uri名称" prefix="简写" %>

在jsp中使用标签


<c: out>

<c: out> 标签用于输出一段文本到浏览器中
属性名是否支持 EL属性类型属 性 描 述
valuetrueObject指定要输出的内容
escapeXmltrueBoolean指定是否将>、<、&、'、"等特殊字符进行HTML编码转换后再进行输出。默认值为true
defaulttrueObject指定如果value属性的值为null/””时所输出的默认值


<c: set> 标签

<c: set>标签用于把某一个对象存在指定的域范围内,或者设置Web域 中的java.util.Map类型的属性对象或JavaBean类型的属性对象的属性
属性名是否支持 EL属性类型属 性 描 述
valuetrueObject用于指定属性值
varfalseString用于指定要设置的Web域属性的名称
scopefalseString用于指定属性所在的Web域
targettrueObject用于指定要设置属性的对象,这个对象必须是JavaBean对象或java.util.Map对象
propertytruestring用于指定当前要为对象设置的属性名称


<c:if>

<c:if test=“”>标签可以构造简单的“if-then”结构的条 件表达式
属性名是否支持 EL属性类型属 性 描 述
testtrueboolean决定是否处理标签体中的内容的条件表达式
varfalseString用于指定将test属性的执行结果保存到某个Web域中的某个属性的名称
scopefalseString指定将test属性的执行结果保存到哪个Web域中


<c:choose> 标签

c:choose>标签用于指定多个条件选择的组合边界,它必须与 <c:when>和<c: otherwise>标签一起使用。使用<c: choose>, <c:when>和<c: otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=gb2312" %>
<c:set value="${param.count}" var="count“ />
<c:choose>
 <c:when test="${count == 0}">
  对不起,没有符合您要求的记录。
 </c:when>
 <c:otherwise>
  符合您要求的记录共有${count}条.
 </c:otherwise>
</c:choose>


<c:forEach> 标签

<c:forEach>标签用于对一个集合对象中的元素进行循环迭代操 作,或者按指定的次数重复迭代执行标签体中的内容。
属性名是否支持 EL属性类型属 性 描 述
varfalseString指定将当前迭代到的元素保存到page这个Web域中的属性名称
itemstrue任何支持的类型将要迭代的集合对象
varStatusfalseString指定将代表当前迭代状态信息的对象保存到page这个Web域中的属性名称
begintrueint如果指定items属性,就从集合中的第begin个元素开始进行迭代,begin的索引值从0开始编号;如果没有指定items属性,就从begin指定的值开始迭代,直到end值时结束迭代
endtrueint参看begin属性的描述
steptrueint指定迭代的步长,即迭代因子的迭代增量


<c:forTokens>

对带有相同符合格式内容进行分割输出,例如varstr="1,2,3,4,5,6";
属性名是否支持 EL属性类型属 性 描 述
Itemstrue任何支持的类型将要迭代的集合对象
delimsfalseString字符串的分割符,可以同时有个分割符(依次写在引号内即可。)
varStatusfalseString指定将代表当前迭代状态信息的对象保存到page这个Web域中的属性名称
begintrueint如果指定items属性,就从集合中的第begin个元素开始进行迭代,begin的索引值从0开始编号;如果没有指定items属性,就从begin指定的值开始迭代,直到end值时结束迭代
endtrueint参看begin属性的描述
steptrueint指定迭代的步长,即迭代因子的迭代增量
varFalseString指定将当前迭代到的元素保存到page这个Web域


<c:url> 标签

<c:url>标签用于在JSP页面中构造一个URL地址,其主要目的是 实现URL重写。URL重写就是将会话标识号以参数形式附加在URL 地址后面
属性名是否支持 EL属性类型属 性 描 述
valuetrueString指定要构造的URL,/表示day15
varfalseString指定将构造出的URL结果保存到Web域中的属性名称
scopefalseString指定将构造出的URL结果保存到哪个Web域中


<c:catch> 标签

<c:catch>标签用于捕获嵌套在标签体中的内容抛出的 异常,其语法格式如下:<c:catch [var="varName"]> nested actions </c:catch>


<c:redirect> 标签

<c:redirect>标签用于将当前的访问请求转发或重定向到其他资 源,它可以根据url属性所指定的地址,执行类似<jsp:forward>这 个JSP标准标签的功能,将访问请求转发到其他资源;或执行 response.sendRedirect()方法的功能,将访问请求重定向到其他资 源。


<c:param> 标签

在JSP页面进行URL的相关操作时,经常要在URL地址 后面附加一些参数。<c:param>标签可以嵌套在<c: import>、<c:url>或<c:redirect>标签内,为这些标 签所使用的URL地址附加参数。<c:param>标签在为一 个URL地址附加参数时,将自动对参数值进行URL编码, 例如,如果传递的参数值为“中国”,则将其转换为 “%d6%d0%b9%fa”后再附加到URL地址后面,这也就 是使用<c:param>标签的最大好处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jstl 标签 jsp