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. WebLech是一个功能强大的Web站点下载与镜像工具

    WebLech是一个功能强大的Web站点下载与镜像工具.它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为.WebLech有一个功能控制台并采用多线程操作. http://sour ...

  2. MySQL具体解释(5)-----------函数超全总结

    mysql函数大全   对于针对字符串位置的操作.第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值. 假设str是空字符串,返回0.假设str是NULL,返 ...

  3. [转]CentOS_yum的详细使用方法

    yum 是什么yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.它能便于管理大量系统的更新问题 yum特点可以 ...

  4. 再写KMP算法

    #include<iostream> #include<string> using namespace std; void getNext(char const*T,int l ...

  5. 文本导出到pdf文件(使用QPrinter和QPainter和QTextDocument)

    程序中数据导出是经常有的需求,今天学习把文本导出到pdf文件.主要是用QPrinter,QPainter TextEditToPdf::TextEditToPdf(QWidget *parent, Q ...

  6. Bootstrap技术: 如何给nav导航组件的tab页增加关闭按钮以及动态的添加和关闭tab页

    先给出示例html代码 <div> <!-- Nav tabs --> <ul class="nav nav-tabs" role="tab ...

  7. Ruby on Rails: 使用devise+cancan+rolify建立完整的权限管理系

    devise.cancan和rolify这三个组件结合,可以建立完整而强大的用户权限模型. devise介绍,负责用户注册.登录.退出.找回密码等操作.细节参考devise on github can ...

  8. 修改VISUAL STUDIO EXPRESS 2012新建C++文件编码

    本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供markdown格式源码,欢迎使 ...

  9. PCB设计资料:看到最后才知道是福利

    參考资料 通过以下的关键词直接从网络上Google或Baidu就能非常easy的找到以下的资料,这里仅仅是以參考文献的方式做一个整理以及简单的说明. 刘雅芳,张俊辉. 抗干扰角度分析六层板的布线技巧. ...

  10. python进阶十_正則表達式(一)

    近期状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思全然不在点上,希望能够借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,假设真的是我自己的问题呢,曾经我 ...