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. Http的操作(不传递参数)

    ttpResponse  httpResponse = null;       HttpEntity  httpEntity = null; HttpGet httpGet = new HttpGet ...

  2. BZOJ 3359: [Usaco2004 Jan]矩形( dp )

    数据范围这么小..怎么乱搞都可以吧... 先排序一遍然后O(n²) dp --------------------------------------------------------------- ...

  3. 1688: [Usaco2005 Open]Disease Manangement 疾病管理( 枚举 )

    我一开始写了个状压dp..然后没有滚动就MLE了... 其实这道题直接暴力就行了... 2^15枚举每个状态, 然后检查每头牛是否能被选中, 这样是O( 2^15*1000 ), 也是和dp一样的时间 ...

  4. File类常见方法

    package file; import java.io.File; public class FileTest2 { public static void main(String[] args) { ...

  5. 2个NASM开发环境下载以及30篇教程(lostspeed)

    http://download.csdn.net/detail/lostspeed/8958175http://download.csdn.net/detail/lostspeed/8954263 h ...

  6. handler.postDelayed()和timerTask

    public static void scrollToListviewTop(final XListView listView) { listView.smoothScrollToPosition(0 ...

  7. 从底层简析Python程序的执行过程

    摘要:是否想在Python解释器的内部晃悠一圈?是不是想实现一个Python代码执行的追踪器?没有基础?不要怕,这篇文章让你初窥Python底层的奥妙. [编者按]下面博文将带你创建一个字节码级别的追 ...

  8. java调用163邮箱发送邮件

    1:注册一个163邮箱,http://mail.163.com 调用发送邮件代码,查询smtp.163.com,作为发送邮件的服务器ip,类似的邮箱服务器应该也可以. MailSenderInfo m ...

  9. J2EE基础篇——十三个规范

    背景: 1.企业级应用框架的需求,在很多企业级应用中.比如数据库连接.邮件服务.事务处理等都是一些通用企业需求模块,这些模块假设每次在开发中都由开发者来完毕的话,将会造成开发周期长和代码可靠性差等问题 ...

  10. C# - InnerList

    运行效果: 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; name ...