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. 关于初始化C++类成员

    在使用C++编程的过程当中,常常需要对类成员进行初始化,通常的方法有两种: 第一种方法: CMYClass::CSomeClass() { x=0; y=1; } 第二种方法: CSomeClass: ...

  2. 13-UIKit(tableviewcell贴图、手势GestureRecognizer、transform变形)

    目录: 一.tableviewcell贴图 二.手势GestureRecognizer 5.1 Tap(按一下) 5.2 Swipe(轻扫一下) 5.3 pinch(捏/扩) 5.4 longPres ...

  3. javascript重点笔记

    操作符之间的优先级(高到低):算术操作符 >比较操作符 >逻辑操作符 >"="赋值符号 算术运算符

  4. hdu 1282回文数猜想

    http://acm.hdu.edu.cn/showproblem.php?pid=1282 Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序 ...

  5. splinter python浏览器自动化操作,模拟浏览器的行为

    Splinter可以非常棒的模拟浏览器的行为,Splinter提供了丰富的API,可以获取页面的信息判断当前的行为所产生的结果   最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有 ...

  6. Win32 Windows编程 十二

    一.对话框 1.对话框的分类 2.对话框的基本使用方式 3.对话框资源 4.有模式对话框的使用 5. 无模式对话框的使用 5.1 加入对话框资源 5.2 定义窗体处理函数 BOOL CALLBACK ...

  7. 安卓面试精华(Activity部分)

    过几天小弟要去面试了,当然免不了要好好复习下功课,其实很多东西也不是特别清楚,今天都当作一个回顾和巩固,希望我的这篇文章能对即将去找工作的同学有所帮助. 1. Q:什么是activity? 虽然这个问 ...

  8. Route@书写规则的总结

    路由书写规则的总结 概念:Routing System由一组路由组成,每一个路由规则可以匹配一种类型的URL,在请求过来的时候,Ruting ystem 就用它来处理这个URL,路由的任务就是匹配UR ...

  9. Java面试题精选(一)基础概念和面向对象

    --   基础概念和面向对象   --      全程将为大家剖析几大部分内容,由于学习经验有限,望大家谅解并接受宝贵的意见: 基础概念部分     ★★   : 常出现的高频率单词的区别理解(异常. ...

  10. Silverlight技术调查(3)——国际化

    原文 Silverlight技术调查(3)——国际化 网上有很多关于Silverlight国际化的说明,包括MSDN的示例,都没有强调一点,下面以红色标示,基础国际化知识请先参考MSDN相关章节,关键 ...