一、jsp中c标签的使用
1、变量维护
(1)<c:set>
设置变量值和对象属性值,语法如下:
<c:set value="值" var="变量名" scope="变量的作用域" target="对象名" prooerty="对象属性名"><c/:set>
(2)<c:remove>
在指定作用域范围内删除变量,语法如下:
<c:remove var="变量名" scope="作用域"></c:remove>
2、流程控制:分为条件标签和迭代标签
(1)条件标签:<c:if><c:choose><c:when><c:otherwise>
<c:if>
不能实现else功能,有两种语法形式,是以有无标记体来区分的
①无标记体
无标签体:<c:if test="测试条件" var="变量名" [scope="作用域"] />
有标签体:<c:if test="测试条件" var="变量名" [scope="作用域"]>标签体</c>
②、有标记体
<c:if test="${user:visitCount!=0}">hello!word!</c:if>
(2)<c:choose><c:when><c:otherwise>
<c:when><c:otherwise>
无法单独使用,只能作为<c:choose
>的子标签来使用,这三个标签组合起来实现switch语句的功能,语法如下
<c:choose>
<c:when test="${user.class==’guest’}">
标签体1
</c:when>
<c:when test="${user.class==’vip’}">
标签体2
</c:when>
<c:otherwise>
标签体3
</c:otherwise>
</c:choose>
(3)迭代标签 <c:forEach><c:forTokens>
①<c:forEach
>用于遍历一个对象集合
<c:forEach var="变量名" items="集合" varStatus="遍历状态名" begin="begin" end="end" step="step" >
标签体
</c:forEach>
②<c:forTokens
>用于遍历字符串,而且每次遍历结果返回字符串中的一个单词
<c:forTokens items=“字符串” delims=“分界符” var=“变量名”
<c:forTokens items="字符串" delims="分界符" var="变量名" varStatus="遍历状态名" begin="begin" end="end" step="sep">
标签体
</c:forTokens>
3、URL管理
(1)<c:url
>:用于对URL地址进行编码
有标签体:
语法:
<c:url value="URL" context="路径" var="变量名" scope="作用域">
`标签体`
</c:url>
实例:
<c:url value="http://localhost:8080/el/index.jsp" var="NewURL">
<c:param name="name" value="zero"/>
<c:param name="age" value="28"/>
</c:url>
<a href="${NewURL}">点我呀</a>
无标签体:主要用于编辑上下文URL
语法:<c:url value="URL" context="路径" var="变量名" scope="作用域"/>
实例:<c:url value="/logon.jsp">登录</c:url>
(2) <c:import>
向当前JSP页面中引入URL资源(可以是远程序站点上的资源)。Include指令和include动作不能向JSP页引入Web程序以外的资源,引入的资源必须位于当前Web程序中
一、String对象引入的语法:
<c:import url="地址" context="上下文路径" var="变量名" scope="作用域" charEncoding="字符集">
标签体使用<`c:param`>
</c:import>
实例:
<c:import url="http://www.hao123.com" var="myurl" charEncoding="gb2312">
</c:import>
<a href="${myurl }">地址</a>
二、以Reader对象导入的语法:
<c:import url="地址" context="上下文路径" varReader="变量名" scope="作用域" charEncoding="字符集">
标签体使用其它动作元素
</c:import>
(3)、<c:redirect>
用于HTTP重定向
无标签体:<c:redirect url="地址" context="上下文路径"/>
有标签体:
<c:redirect url="地址" context="上下文路径">
<c:param/>标签
</c:redirect>
(4)、<c:param
>只能嵌入到<c:url>、<c:import>、<c:rediect>
标签中作为子元素来使用,此标签主要用于设置URL中将要传入的参数
无标签体:<c:param name="名称" value="值"/ >
有标签体:
<c:param name="名称" value="值" >
标签体
</c:param>
4、其他标签:<c:out>、<c:catch>
(1)<c:out>:
在JSP页面中显示变量内容
无标签体:<c:out value="值" escapeXml="{true|false}" default="默认值"/>
有标签体:
<c:out value="值" escapeXml="{true|false}" default="默认值">
标签体
</c:out>
其中:default: 用于指定当value值为null时,应该输出的值。
escapeXml: 用于设置是否将"<"、">"、"&"、"’"、"""、这些字符进行转义。
escapeXml默认为true,表示不发生转换
(2)<c:catch>
:用于处理JSP页面错误,如果JSP页面出错,可以通过对page指令属性的设置将其转到错误处理页面上。<c:catch>
标签是对这种错误处理的补充。它的处理方式是将可能发生异常的JSP代码片段嵌入到标记体内,然后使用var属性接收标记体抛出的异常。
语法:
<c:catch var="变量名">
嵌套动作
</c:catch>
使用方法:
<c:catch var="myexception">
嵌套动作
</c:catch>
<c:if test="${myexception!=null}">
内容
</c:if>
参考博文:https://blog.csdn.net/chabale/article/details/9406437
二、jsp中获取数据
jsp中获取数据有两种方法:同步或者异步
1、同步获取数据,jsp里面使用el表达式或者jst标签读取,比如:
Java:request.setAttribute(“para”, “abc”);
JSP:
p
a
r
a
或
者
<
c
:
o
u
t
v
a
l
u
e
=
"
{para} 或者<c:out value="
para或者<c:outvalue="{para}"></c:out>
用c标签相对安全一些。
2、异步获取数据,用ajax调后台服务,再渲染到页面上,如: