39--JSTL

在JSP编码中需考虑的一种方法,因为这种方法可以让你避免脚本,因为在JSP的标准标记库里有许多已经定制的标记。在JSP2.0的规范中,要使用JSTL,需要将一个jstl.jar文件copy到相应的web目录(WEB-INF/LIB)。对于JSP作为view的功能,所以它本身就能完成太多的业务逻辑。在JSTL中我们会看到很多<C:...>这样以C开头的前缀,这是一个约定,其简称就是单词core的首写字符。
像在JSP中处理像循环之类的功能,一般会用到像<c:forEach>,这种方法很适合迭代处理数组和集合。特别能用于for循环,对于集合中的每一个元素,都会一个不落的执行一次标记的体,将每个元素赋给一个变量。当然我们可以用更深的办法,那就是嵌套<c:forEach>,也就是我们常说的嵌套循环。
<c:if>该标记可以完成对于条件判断所做的动作,当然我的理解是这样的if似乎没有if...else 这样好用。如果真那么好用的话,就不会有<c:choose>了。当然<c:choose>内是一个组合标记方式,一般由<c:when>和<c:otherwise>,这样的组合保证了当条件发生时执行相应时间,当不成立时则执行相应的动作。
强大的<c:set>标记,可以设置Map中的值,可以在Map中建立一个新项,也可以创建一个新的请求作用域属性。set有两种方法,一种是针对属性变量的 eg:<c:set var>,一种是针对bean和Map的设置。<c:set>设置中有一些小技巧,在该设置中只能设置其中,不能两个属性都设计。scope是的,如果没有使用这个属性,则默认为page的作用域。如果var指定的属性不存在便会创建一个新的属性,而target是需要放一个能解析为实际对象表达式的,用来指定具体的属性对象。<c:remove>则是针对一个set标记来删除一个变量。
<c:import>的方法相当于上一个章节说起的include,是一种包含的方法,它是在请求时将URL属性值指定的内容增加在当前页面,和<jsp:include>很相似,但是<c:import>标记的属性是使用的url。它强大的地方在于可以应用到Web应用之外去,前面说的include和<jsp:include>都只能包含在当前的页面,但<c:import>则可以容器之外的东东搞过来,也就是如果是负载均衡集群配置中<c:import>很有用武之地。像很多网站,图片都存储在图片服务器上的,类似于这种情况<c:import>大有作为。
最后讲讲一个也是比较实用的功能<c:url>,这个功能我们需要提到在Servlet单元中说过的当浏览器不支持cookie时,需要对url重写加上一个sessionId的尾巴,是的,<c:url>就可以搞这个!

继续!我们在JSP页面里调用一个风险的标记,当出现异常时可以恢复,实现像try..catch的一样。是的,在JSTL中确实有这样的标记<c:catch>来完成的。在JSP处理异常,也有一些套路和方法的。例如:我们根据http响应的结果设定跳转的界面,而这个时候我们可以在部署文件中用<error-page>和<error-code>、<location>,当响应相关的代码时就调用该错误界面。在try..catch中,我们知道catch的就是异常对象。但对于Web界面处理的话,需要把异常设置为一个属性。而使用该属性就是用var,那该值来取名。假设设定var="bException",那么用EL表达式就可以用bException.message来调用了。当我们使用该标签处理异常时通常会遇到两种情况,一种是:如果我们使用var属性,会把异常对象赋予这个var的变量,然后流程直接跳转catch中。

在JSTL中,我们能用的通常有以C:开头的核心库。我们之前说的都是与之相关的核心库。其实还有以fmt开头的格式化库,还有SQL的数据访问库。还有以XML开头的XML核心库。

                                                                                                                                                                               (未完待续.........) 

熬之滴水穿石:JSP--HTML中的JAVA代码(6)的更多相关文章

  1. jsp页面中的java代码

    jsp页面中的java代码 1.jsp表达式  <%= ....%>  只能放置一个变量常量 2. jsp小脚本 <% .... %>  java语句,可以插入一些语句 3. ...

  2. JSTL标签急速秒杀jsp页面中的java代码(一)---Core标签库

    JSTL标签简介 ===================================================================== JSTL的全称是JavaServer Pa ...

  3. JSP中嵌入java代码方式以及指令

    JSP中嵌入java代码的三种方式: (1)声明变量或方法 :  <%! 声明; %> :慎重使用,因为此方法定义的是全局变量 (2)java片段(scriptlet):  <% j ...

  4. EL和 JSTL? 在JSP中简化 java代码的写法!

    一.servlet部分 package com.aaa.servlet; import com.aaa.dao.IStudentDAO; import com.aaa.dao.Impl.Student ...

  5. JSP中的Java代码和内置对象

    一.JSP中的Java代码 (一)JSP页面中有三种方式嵌入java代码: 1.java的表达式 格式:<%= java表达式 %> 2.java的语句 格式:<% java语句&g ...

  6. 在js中嵌套java代码

    jsp中有时候在js中操作某些java后台传递过来的数据逻辑比较复杂,比如list内容的遍历,可以直接在页面上添加java脚本来执行内容,代码如下: //在js中插入java代码操作 <% // ...

  7. 系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层

    系统管理模块_部门管理_改进1:抽取添加与修改JSP页面中的公共代码 commons.jspf <%@ page language="java" import="j ...

  8. Myeclipse中把java代码导成UML类图

    Myeclipse中把java代码导成UML类图 1.右键点击项目名称,选择New-------àUML2 Model 2.给类图命名 3.导成类图 1)如果要把整个项目导成类图,则把整个项目拖到类图 ...

  9. android中在java代码中设置Button按钮的背景颜色

    android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...

随机推荐

  1. A shallow summary of oracle log miner

    Sometimes, we should recover one or more rows data which is deleted carelessly by users, but it is n ...

  2. 基于visual Studio2013解决C语言竞赛题之0522和为素

     题目

  3. Shell脚本编程具体解释

    第12章 Shell脚本编程   l  Shell命令行的执行 l  编写.改动权限和运行Shell程序的步骤 l  在Shell程序中使用參数和变量 l  表达式比較.循环结构语句和条件结构语句 l ...

  4. 文件操作中的FLAG(O_RDONLY,O_WRONLY )的值

    #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> void main(void) { ...

  5. SGU 106 The Equation 扩展欧几里得应用

    Sol:线性不定方程+不等式求解 证明的去搜下别人的证明就好了...数学题. #include <algorithm> #include <cstdio> #include & ...

  6. 05-UIKit(UITableViewController)

    目录: 一.UITableViewController(表视图控制器) 二.委托协议 三.tableview工作过程(三问一响应) 四.UITableViewCell 回到顶部 一.UITableVi ...

  7. 重设mysql数据库root用户密码

     原文:http://blog.sina.com.cn/s/blog_a3695da601010mrs.html   1, 启用任务管理器,结束mysql进程   2,进入命令行,进入mysql的bi ...

  8. 在uboot里面加入环境变量使用run来运行

    Author:杨正  Date:2014.11.11   Email:yz2012ww@gmail.com QQ:1209758756 在移植uboot的时候,能够在uboot里面加入定义一些自己的环 ...

  9. 在Qt中如何使用QtDesigner创建的UI文件

    使用Qt有一些时间了,一直在IDE环境(qtcreator和VS2003+集成器)中使用,自然少了很多麻烦的步骤.但是在享受这种便利的同 时,我们也失去了理解更多知识背后的点滴.在IDE中,如果我们要 ...

  10. atitit.集filt经营分部 filter总结

    atitit.集filt经营分部 filter总结 1. Css sltr 1 2. 基本选择器(依据id,class,元素名) 2 3. 层次选择器 3 4. 过滤选择器 3 5. First,la ...