c:if标签多条件的逻辑判断

楼主最近遇到一个要在js中写多条件的条件判断语句其中有个条件是类似于这种0<${aphot.count}<=5,楼主一开始是这么写的但是只进入第一个和最后一个


<c:forEach items="${listAp}" var="aphot">
alert("ap信息==>"+${aphot.id}+":"+${aphot.count});
<c:if test="${aphot.count == 0}">
alert("等于0");
</c:if>
<c:if test="${aphot.count>0} && ${aphot.count<=5}">
alert("0-5 :"+${aphot.xValue}+","+${aphot.yValue});
</c:if>
<c:if test="${aphot.count>5} && ${aphot.count<=10}">
alert("5-10:"+${aphot.xValue}+","+${aphot.yValue});
</c:if>
<c:if test="${aphot.count >10}">
alert("10以上:"+${aphot.xValue}+","+${aphot.yValue});
</c:if>
</c:forEach>


最后改成这样子每个条件都可以进去,后来发现像这种语句只用写一个“${}”符号,然后再一个里面做判断就行。

<c:forEach items="${listAp}" var="aphot">
alert("ap信息==>"+${aphot.id}+":"+${aphot.count});
<c:if test="${aphot.count == 0}">
alert("等于0");
</c:if>
<c:if test="${aphot.count>0 && aphot.count<=5}">
alert("0-5 :"+${aphot.xValue}+","+${aphot.yValue});
</c:if>
<c:if test="${aphot.count>5 && aphot.count<=10}">
alert("5-10:"+${aphot.xValue}+","+${aphot.yValue});
</c:if>
<c:if test="${aphot.count >10}">
alert("10以上:"+${aphot.xValue}+","+${aphot.yValue});
</c:if>
</c:forEach>


  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EL表达式 (详解) EL表达式 1、EL简介 1)语法结构 ${expression} 2)[]与.运算符 EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。 例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如: ${sessionScope.user[data]}中data 是一个变量 3)变量 EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为 username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、 Application范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时, 就回传null。 属性范围在EL中的名称 Page PageScope Request RequestScope Session SessionScope Application ApplicationScope 4) 1--EL表达式用${}表示,可用在所有的HTML和JSP标签中作用是代替JSP页面中复杂的JAVA代码. 2--EL表达式可操作常量 变量 和隐式对象. 最常用的 隐式对象有${param}和${paramValues}. ${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组 值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话 范围内的变量.applicationScope表示应用范围的变量. 3 -- 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁 止.JSP2.0中默认的启用EL语言. 4-- EL语言可显示 逻辑表达式如${true and false}结果是false 关系表达式如${5>6} 结 果是false 算术表达式如 ${5+5} 结果是10 5--EL中的变量搜
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>关于java异常处理(讲义)--JSP中文网</TITLE> <META content="text/html; charset=gb2312" http-equiv=Content-Type> <META name=Description content=关于java异常处理(讲义),JSP中文网> <META name=keywords content=关于java异常处理(讲义)><LINK rel=stylesheet type=text/css href="http://www.jspcn.net/css/news.css"><LINK rel=stylesheet type=text/css href="http://www.jspcn.net/css/qq.css"> <META name=GENERATOR content="MSHTML 8.00.7600.16535"></HEAD> <BODY> <DIV id=area> <DIV id=title1> <UL> <LI><A href="http://www.jspcn.net/">JSPCN主页</A> </LI> <LI><A href="http://www.jspcn.net/index.html" target=_blank><B>JSP空间</B></A> </LI> <LI><A href="http://www.jspcn.net/moreNews.html" target=_blank>JSP技术</A> </LI> <LI><A href="http://www.jspcn.net/moreSofts.html" target=_blank>JSP下载</A> </LI> <LI><A href="http://www.jspcn.net/AboutUs.html" target=_blank>关于我们</A> </LI> <LI><A href="http://www.jspcn.net/ContactUs.html" target=_blank>联系我们</A> </LI></UL>  </DIV> <DIV id=title2><A href="http://www.jspcn.net/"><IMG border=0 alt=JSP虚拟主机,jsp空间,java空间,java虚拟空间 src="http://www.jspcn.net/images/logo.gif"></A><A href="http://www.jspcn.net/"><IMG border=0 alt=JSP虚拟主机,jsp空间,java空间,java虚拟空间 src="http://www.jspcn.net/images/head.gif"></A></DIV> <DIV id=ad><B>当前位置:</B> <A href="http://www.jspcn.net/">首页</A> --> <A href="http://www.jspcn.net/moreNews.html">JSP文章</A> -->  <A href="http://www.jspcn.net/htmlnews/B20070807101134.html">JAVA技术</A> --> <A href="http://www.jspcn.net/htmlnews/B20070807102438.html">异常处理</A> --> 关于java异常处理(讲义) </DIV> <DIV id=vcontent> <DIV id=left1> <UL> <LI><A title=exception 隐含对象 href="http://www.jspcn.net/htmlnews/11501025699371438.html" target=_blank>exception 隐含对象</A> <LI><A title=谈自定义Exception进行错误处理 href="http://www.jspcn.net/htmlnews/11500776135931403.html" target=_blank>谈自定义Exception进行错误处理</A> <LI><A title="When catching exceptions, don't cast your net too wide" href="http://www.jspcn.net/htmlnews/1150060605562142.html" target=_blank>When catching exceptions, don't cast your net too wide</A> <LI><A title=NoClassDefDoundErr与ClassNotFoundException区别 href="http://www.jspcn.net/htmlnews/11500204450151651.html" target=_blank>NoClassDefDoundErr与ClassNotFoundException区别</A> <LI><A title=深入MIDIetStateChangeException href="http://www.jspcn.net/htmlnews/11500199894531654.html" target=_blank>深入MIDIetStateChangeException</A> <LI><A title=关于java异常处理(讲义) href="http://www.jspcn.net/htmlnews/11454147095461992.html" target=_blank>关于java异常处理(讲义)</A> <LI><A title=[JAVA100例]009、异常的捕获和实现自己的异常类 href="http://www.jspcn.net/htmlnews/11454145234531123.html" target=_blank>[JAVA100例]009、异常的捕获和实现自己的异常类</A> <LI><A title=Java异常学习心得 href="http://www.jspcn.net/htmlnews/11454143769681120.html" target=_blank>Java异常学习心得</A> <LI><A title=Java中常见的异常 href="http://www.jspcn.net/htmlnews/11454142633901307.html" target=_blank>Java中常见的异常</A> <LI><A title=如何在程序异常或正常退出JVM时执行特定代码 href="http://www.jspcn.net/htmlnews/11453840165461348.html" target=_blank>如何在程序异常或正常退出JVM时执行特定代码</A> <LI><A title=构建更好的异常处理框架 href="http://www.jspcn.net/htmlnews/11453827062501758.html" target=_blank>构建更好的异常处理框架</A> <LI><A title="关于runtime exception和checked exception" href="http://www.jspcn.net/htmlnews/11453821828901962.html" target=_blank>关于runtime exception和checked exception</A> <LI><A title="Java 理论与实践: 关于异常的争论" href="http://www.jspcn.net/htmlnews/11453819700151449.html" target=_blank>Java 理论与实践: 关于异常的争论</A> <LI><A title=Java异常处理的陋习展播 href="http://www.jspcn.net/htmlnews/11453816265151984.html" target=_blank>Java异常处理的陋习展播</A> <LI><A title=java的异常处理机制 href="http://www.jspcn.net/htmlnews/11453815669531884.html" target=_blank>java的异常处理机制</A> <LI><A title=浅析Java语言中两种异常的差别 href="http://www.jspcn.net/htmlnews/11453814749211672.html" target=_blank>浅析Java语言中两种异常的差别</A> <LI><A title=浅析Java语言中两种异常使用的差别 href="http://www.jspcn.net/htmlnews/11453813498901558.html" target=_blank>浅析Java语言中两种异常使用的差别</A> <LI><A title=邂逅StringIndexOutOfBoundsException href="http://www.jspcn.net/htmlnews/11171163972961452.html" target=_blank>邂逅StringIndexOutOfBoundsException</A> <LI><A title="避免在Java中使用Checked Exception" href="http://www.jspcn.net/htmlnews/11049415031711687.html" target=_blank>避免在Java中使用Checked Exception</A> <LI><A title="开源 JVM 一览" href="http://www.jspcn.net/htmlnews/11049386275931969.html" target=_blank>开源 JVM 一览</A> <LI id=more1><A href="http://www.jspcn.net/htmlnews/B20070807102438.html" target=_blank>更多...</A> </LI></UL></DIV> <DIV id=right1><BR> <H2>关于java异常处理(讲义)</H2><BR><BR> <DIV align=right>作者:    文章来源:<BR>发布日期:2006年07月21日    浏览次数:791次</DIV> <DIV height="600">第16讲:异常处理<BR>16.1、简介:<BR>异常是程序执行时遇到的任何错误情况或意外行为。<BR>以下这些情况都可以引发异常:您的代码或调用的代码(如共享库)中有错误,操作系统资源不可用,公共语言运行库遇到意外情况(如无法验证代码),等等<BR><BR>《Exception Handling for C++》关于异常处理论文,<BR>向对象中每增加一个类,都可能包含一些错误。<BR>Java使用和C++类似的异常处理<BR>1、处理错误的方法有很多流行方法<BR>2、一般方法是把程序处理代码段分散到系统代码中,在可能发生错误的地方处理错误<BR>优点:便于程序员能够条理的看到程序中异常的处理<BR>缺点:异常处理程序“搅乱”代码,程序员很难关心程序本身能否正常完成功能,而只关心了性能。<BR>3、常见异常实例包括:数组下标越界,算法溢出(超出数值表达范围),除数为零,无效参数、内存溢出<BR>异常处理功能:主要处理一些同步异常(除数为0),不宜处理一些异步事件(Disk I/O End、网络信息到达、点击鼠标、敲击键盘)这些最好使用java事件监听。<BR>异常处理程序:能够让系统在出现异常的情况下恢复过来的程序<BR>使用异常处理情况:异常诊断与异常处理不在同一个位置下时使用异常处理程序(若用户一直通过键盘与程序通话,那么就不能使用处理键盘输入处理)<BR>使用异常的注意事项:<BR>1、 异常处理位置与异常发生位置必须不同(若一个程序能够处理自己的错误,那么就采用传统的错误处理方式进行局部处理)<BR>2、 要避免使用异常处理来代替错误处理,若这样就会降低程序的清晰性。<BR>3、 尽管可以使用异常处理来代替错误处理,但会降低性能<BR>4、 异常处理会占用程序的格外执行时间<BR>5、 异常处理能够提高程序的容错性<BR>6、 程序员使用JAVA标准的异常处理功能来代替他们的专用方法,可以在大型项目中提高程序的清晰性<BR>7、 异常是超类Exception继承的子类,主要如何处理“未扑获的异常”,无法预料的异常。 <BR>8、 异常处理在java中原理:<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>异常处理有Method调用者的调用者或者Method调用者来处理,<BR>9、 异常处理适用分别开发的组件系统<BR>10、 因为一些程序员使用不支持异常处理语言编程时,往往拖延或忘记错误处理程序的编写,故,Java强制程序员从项目一开始就着手进行异常处理,程序员必须投入很大精力把异常处理的策略融合到软件产品中<BR>11、 最好在进行系统设计是就把异常处理融合在系统中,若系统一实现,就很难添加异常处理功能<BR><BR><BR>16.2如何使用异常处理:<BR><BR>在以下情况下使用异常处理:<BR><BR>1、 当方法因无法控制的原因而不能实现其功能时;<BR>2、 处理来自程序组件整体异常,这些程序组件不适宜直接处理异常<BR>3、 在大型项目中,对于每个项目都以一致的方式进行错误处理<BR>4、 在类库中出现每一个异常,都需要一个惟一错误处理,在类库中使用异常处理很合适<BR><BR><BR>16.3 其他的错误处理技术:<BR><BR>处理异常的方法:<BR>1、 在程序可以忽略异常(忽略异常在大型公用软件和关键处理软件可能会导致重大的软件破坏,而自己用的软件,通常可忽略一些错误)<BR>2、 遇到异常时,程序可以根据提示来终止运行(但是处理关键任务是绝对不可以采用,〈神5返回仓温控系统〉?863项目。)<BR><BR><BR>16.4 java异常处理的基础:<BR><BR>java的异常处理适用于在一个方法中能够检测出错误单不能处理错误的情况,这样方法将抛出一个异常(JAVA无法保证“存在”的异常处理程序能够处理某种异常,若“存在”,就“捕获”异常,并处理“异常”,如找不到,那么:<BR><BR>命令行APP/控制台APP(不基于GUI),当异常不能被“捕获”,那么该程序会运行默认异常处理程序,退出JAVA,若Applet或基于GUI的APP,当一个异常未被“捕获”,GUI在运行默认异常处理程序依然会显示,而且用户使用的GUI处于一个不稳定的状态)<BR>)<BR>JAVA代码中:1、可能出现异常的代码-----{ …… try{抛出一个异常}-----程序块 ……catch1{异常处理程序1};……catch100 {异常处理程序100}; finally{无类是否出现异常都执行的程序} <BR>1、 若try抛出Exception,App寻找在Catch1~100寻找合适异常处理程序,若找到,执行CATCH{}代码,没有,执行最后一个catch{}后代码<BR>2、 若try未抛出Exception,就执行执行最后一个catch{}后代码。<BR><BR>3、 throws子句来抛出指定的异常,异常抛出点(throws 语句位置、try{}程序块、try()程序块中直接和间接调用的方法中)<BR><BR>4、 java采用终止方式异常处理,不是恢复方式的异常处理<BR><BR>5、 发生异常时,异常周围信息(抛出对象本身类型)-------------异常处理程序<BR><BR>12.5一个异常处理的简单实例:除数为0<BR><BR>需求:使用一个小应用程序,完成两数相除的计算<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>分析:<BR>我们使用有顶向下,逐步求精的方法:<BR>1、 首步我们一般在程序中先处理我们完成异常处理的类,完成异常处理的功能,因为可能除数为0是会出现异常,我们查找java.lang包中各个Exception类,发现RuntimeException类集合中的ArithmeticException可以处理运算异常,我们就让一个DivideByZeroException(继承于ArithmeticException) 更特殊类来专门处理除数为零的异常。在DivideByZeroException()中调用super()(专门初始化传如参数的方法)来传如异常处理后对象描述(初始状态)<BR>2、 第一步,创建一个Applet类完成完成两数相除的计算<BR>3、 第二步:处理对象与方法:声明4个GUI组件对象和1个用于存储计算结果(double)的和2个被除数与除数基本类型(int)<BR><BR>A、 初始化对象方法init()<BR>B、 处理当除数键盘输入后,触发事件进行计算的方法(返回判断)action()<BR><BR>a、 因为在此方法中,有可能出现除数为0的可能,而且在计算中才回出现错误,错误出现后需要进行处理异常,那么我在其中使用try{}程序块先调用方法quotient进行计算result=quotient(number1,number2),1、然后让quotient()方法(使用方法体中的throws Ex{}抛出异常程序块---此为深层嵌套)抛出异常(因为此处理信息比较简单,但存在信息传递,我们让其拖后处理)我们没有显式在try()块中抛出异常。有抛出异常就有获得异常,使用catch{}程序块完成,a)、在quotient()中(实际深层嵌套throws Ex{}抛出异常程序块),当除数=0时,就调用throw子句创建并抛出一个new catch{}“捕获”(指定匹配类型DivideByZeroException) quotient()抛出异常信息(DivideByZeroException),而接受此信息是由exception接收,并调用toString()方法把exception转换成字符串,使用showStatus(exception.toString()); 显示出来 (因为需求要求显示异常)。b)、若当除数!=0时,那么就不抛出异常,然后将程序返回到try()程序块中quotient()方法调用处,接着使用showStatus()方法显示算式和结果(number1+”/”+number2+”=”+Double.toString(result))程序将跳过catch{}程序块,action()方法将执行return true<BR><BR>注意:当quotient()抛出异常信息(DivideByZeroException)时,quotient()终止执行,这样会对所有对象(4+2+1)设置标记,用于无用单元回收处理;并在无用单元回收处理之前,还将运行这些对象的终止函数。如果抛出异常,那么try在程序块执行showStatus之前终止。若try抛出异常之前自动创建了对象,那么会对这些对象设置标记,用于无用单元回收,同时在回收之前,还将运行这些对象的终止函数。<BR>b、 在action()方法中要注意处理:在TextField中第2个输入结束并按下回车后,除数应该怎样获得输入的数字(number1=Integer.parseInt(input1.getText)),文本框如何获得合法的文本(setText()).也包括判断(if (event.target==input2))<BR><BR>C、 因为quotient()方法任务比较多,所以要将此方法单独与action来处理,而显示程序的清晰性和可读性,同时可以提高执行效率和稳定性能。<BR><BR>类图与流程图:<BR><BR>代码:<BR>//Fig 16.4: DivideByZeroException.java<BR>//W.Qiang<BR>//2005.J.6<BR>public class DivideByZeroException extends ArithmeticException{<BR>public DivideByZeroException()<BR>{<BR>super(“Attempted to divide by zero”);<BR>}<BR>}<BR>import java.awt.*;<BR>import java.awt.event.*<BR>import java.applet.Applet;<BR><BR>public class DivideByZeroTest extends Applet<BR>{<BR>Label prompt1,prompt2;<BR>TextField input1,input2;<BR>Int number1,number2;<BR>Double result;<BR><BR>public void init()<BR>{<BR>prompt1=new Label (“输入被除数”);<BR>input1=new TextField(10);<BR>prompt2=new Label (“输入除数并按下回车”);<BR>input2=new TextField(10); <BR>add (prompt1);<BR>add (input1);<BR>add (prompt2);<BR>add (input2);<BR>}<BR><BR>public boolean action (Event event,Object obeject )<BR>{<BR>if (event.target==input2)<BR>{<BR>number1=Integer.parseInt(input1.getText());<BR>input1.setText(“”);<BR>number2=Integer.parseInt(input2.getText());<BR>input2.setText(“”);<BR><BR>try {<BR>result=quotient(number1,number2);<BR>showStatus(number1+”/”+number2+”=”+Double.toString(result));<BR>} <BR><BR>catch(DivideByZeroException exception) {<BR>showStatus(exception.toString());<BR>}<BR>}<BR>return true;<BR>}<BR>public double quotient(int numerator,int denominator)throws DivideByZeroException<BR>{<BR>if (denominator==0) <BR>throw new DivideByZeroException ();<BR>else (denominator!=0)<BR>return(double) numerator / denominator ;<BR>}<BR>}<BR><BR>12.6 try程序块:<BR>try{ <BR>……}<BR>catch(){<BR>…….}<BR>finally{ ……}<BR>try后面跟0~多个catch程序块<BR>若try抛出Exception,App寻找在Catch1~100寻找合适异常处理程序,若找到,执行CATCH{}代码,没有,执行最后一个catch{}后代码<BR>若try未抛出Exception,就执行执行最后一个catch{}后代码。<BR>finally{无类是否出现异常都执行的程序,必须完成资源释放即终止函数调用,可避免资源泄露}<BR>16.7 抛出异常:<BR>throw 子句用来抛出异常,而throws子句用来指定异常 <BR>throw 的操作数是Throwable所有派生类,Throwable的直接子类是Exception(异常,由应捕获的问题引起,应进行处理)与Error(重大系统问题,一般不捕获)<BR>抛出异常抛出点有try{}块、, try{}块某个深层嵌套的作用域、try{}块某个深层嵌套的方法中,throws指定异常,throw抛出的异常<BR>try{}不包括错误检测语句与throw子句,但它的程序块中所引用的对象将会执行构造函数中的错误检测代码,并抛出异常<BR>我们只要求异常终止产生异常的程序块执行,而不停止整个程序<BR>异常信息传递通过对象引用产生,然后让catch块中的参数名(对象名)引用<BR>16.8 捕获异常:<BR><BR>异常处理程序包含在catch程序块中<BR>语法:<BR>catch (classNmae---指定要抛出的异常的类型,参数名-----用来引用处理程序捕获的对象){javaCode -----处理异常可执行代码}<BR><BR>catch使用注意事项:<BR>1、 若假设异常处理之后,程序控制将返回throw后的第一个语句,那么将导致逻辑错误<BR>2、 将catch程序块的参数不能设置成多个,一个catch只有一个参数<BR>3、 若两个catch程序块(均和某个try程序块有关)都用于捕获同一类型异常,那么将产生语法错误<BR>4、 捕获特殊异常可能找不到,需要在下一层try中找,若找不到,那么命令行APP/控制台APP(不基于GUI)将退出程序,Applet或基于GUI的APP将继续执行处于一个不稳定的状态的APP<BR>5、 若某一类型异常,可能有几个异常处理程序与他相匹配,那么执行first相匹配的异常处理程序<BR>6、 一个程序可以同时处理许多关系密切的异常,我们可谓此ExceptionGroup提供1个异常类与catch处理程序,当某个异常发生时,可根据不同的实例数据创建异常对象,同时catch检查该数据,以判断异常的类型;我们一般不提倡此种编程风格,最好用继承的方法解决<BR>7、 在异常处理程序中,不能访问try块中定义的对象,异常处理开始,try快结束<BR>8、 若执行某个异常处理程序时又抛出一个异常,原try块已经终止,那么就让原try外层try处理程序进行处理,同时外层try程序监视并处理原try块的catch处理程序产生的错误<BR>9、 异常处理程序的形式:A、重抛出异常;B、通过抛出另一种不同类型的异常来转换异常类型;C、通过执行完最后一个异常处理程序之后,完成任何必要的恢复工作并使程序继续执行;D、判断产生错误的原因,然后处理,并重新调用原来曾产生该异常的方法 E、简单向Runtime返回一个状态值 ……………等等<BR>10、 传统的控制流不使用异常,因“额外的”异常会“掩盖”那些真正的错误类型的异常,程序员很难跟踪那些大量的异常,而且这里的异常不是经常见到的<BR>11、 catch处理程序抛出一个异常,将由catch处理或与同1个try块相关的其他处理程序来处理,就会产生逻辑错误<BR><BR>16.9 重抛出异常:<BR>catch异常处理程序中出现异常,需要其他catch处理程序处理该异常 <BR>可以用throw重抛出异常<BR><BR>16.10 throws 子句:<BR><BR>用途:在一个method中,利用其列出该方法所能抛出的异常<BR>int g (float h) throws a,b,c<BR>{<BR>//method body<BR>}<BR>抛出的对象为:指定类对象或者子类对象<BR><BR>1、运行时异常:发生异常是某些可避免的事情出现错误<BR>此异常是RuntimeException类派生出来的<BR>包括:ArrayIndexOutOfBoundsException(访问一个越界数组下标),NullPointerException(Null引用操作抛出---声明而没有创建对象);<BR>ClassCastException (无效的类型转换引发)<BR>IOException ,InterruptedException<BR><BR>Throws不必要显式指出RuntimeException与Error,而要指出method或该method所调用的method显式抛出非RuntimeException异常<BR>3、 java异常区分:经检查的Exception(非RuntimeException);未经检查的Exception(RuntimeException);Error<BR><BR>注意事项:<BR>1、 method抛出一个经检查的Exception,若该Exception未列在throws子句中,会产生语法错误<BR>2、 试图在一个没有throws子句中method抛出异常,会产生语法错误<BR>3、 若method1调用method2(显示抛出经检查的Exception),必须在method1的子句列出此异常,除非method2已经捕获此异常<BR>4、 子类method的throws清单是父类method的throws清单的子集<BR>5、 捕获异常必须处理,才能满足“java捕获或声明”。<BR>6、 java编译器强制程序员处理异常,绝对不能忽略异常处理<BR>7、 java列出的Error见j2SDK 1.42 Documention 的java.lang package errors (AWTError)<BR>8、 java列出的Exception见j2SDK 1.42 Documention 的java.lang package Exception 、 java.util package Exception 、java.io package Exception、java.awt package Exception、java.net package Exception<BR><BR>16.11构造函数、终止函数和异常处理<BR><BR>当构造函数检测错误(不能返回值)解决方案(让程序知道无法正确构造该对象):<BR>1、直接返回该错误对象,当使用该对象进行判断,以确定此对象是否错误<BR>2、在该构造函数外设定一个全局变量,都不是好方法3、抛出异常,把次函数错误信息传递到外部,并处理该错误<BR>4、 当该函数抛出Exception ,那么该函数建立的对象将被设置标记,用与最终的无用单元回收处理,故需要调用终止函数。<BR><BR>16.12异常与继承:<BR><BR>因为继承关系,各种错误可以多态处理<BR>一般最好捕获并处理父类异常,(仅当所有子类对象的处理方法都一致才有意义),否则,捕获子类异常<BR><BR>16.13 finally程序块<BR><BR>若程序显示使用某些资源,那么必须在最后完成对资源的释放即无庸单元回收,在C与C++中,常见是指针不能回收,函数不能终止,出现“内存泄露”<BR>java实现自动的无庸的单元回收功能,可避免“内存泄露”,但java同样存在别的“资源泄露”<BR>一般在finally程序块中使用一些资源释放的代码<BR>1、 finally程序块将try程序块中所有打开文件关闭<BR>2、 java并没有彻底消除资源泄露、当某个对象不存在是,java才对该对象进行无庸单元回收处理,当程序员错误的对某个对象保持引用时,就会出现内存泄露<BR>3、 exception ( String informationString):其中informationString是对该类异常描述信息,而获得信息使用getMessage(用于返回保存在某个异常中的描述字符串)。PrintStackTrace(用于把方法调用堆栈的内容打印出来,对测试程序特别有用)。<BR><BR><BR>  </DIV></DIV><!-- 相关DIV --> <DIV id=rel> <UL> <LI><A href="http://www.jspcn.net/">JSP虚拟主机,JSP空间</A> </LI></UL></DIV></DIV> <DIV id=bottom2 align=center><FONT face=Verdana>Copyright © 2002-2012 JSPCN.net. All rights reserved.</FONT><BR>JSP中文网    备案号:粤ICP备09171188号<BR>成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号 </DIV></DIV></BODY></HTML>
Struts 2 标签库(文档手册) Tags-API-CLSW-JSP <%@ taglib prefix="s" uri="/struts-tags" %> 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. <s:a href=""></s:a>-----超链接,类似于html里的<a></a> 3. <s:action name=""></s:action>-----执行一个view里面的一个action 4. <s:actionerror/>-----如果action的errors有值那么显示出来 5. <s:actionmessage/>-----如果action的message有值那么显示出来 6. <s:append></s:append>-----添加一个值到list,类似于list.add(); 7. <s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,这个是ajax B: 1. <s:bean name=""></s:bean>-----类似于struts1.x中的,JavaBean的值 C: 1. <s:checkbox></s:checkbox>-----复选框 2. <s:checkboxlist list=""></s:checkboxlist>-----多选框 3. <s:combobox list=""></s:combobox>-----下拉框 4. <s:component></s:component>-----图像符号 D: 1. <s:date/>-----获取日期格式 2. <s:datetimepicker></s:datetimepicker>-----日期输入框 3. <s:debug></s:debug>-----显示错误信息 4. <s:div></s:div>-----表示一个块,类似于html的<div></div> 5. <s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----双下拉框 E: 1. <s:if test=""></s:if> 2. <s:elseif test=""></s:elseif> 3. <s:else></s:else>-----这3个标签一起使用,表示条件判断 F: 1. <s:fielderror></s:fielderror>-----显示文件错误信息 2. <s:file></s:file>-----文件上传 3. <s:form action=""></s:form>-----获取相应form的值 G: 1. <s:generator separator="" val=""></s:generator>----和<s:iterator>标签一起使用 H: 1. <s:head/>-----在<head></head>里使用,表示头文件结束 2. <s:hidden></s:hidden>-----隐藏值 I: 1. <s:i18n name=""></s:i18n>-----加载资源包到值堆栈 2. <s:include value=""></s:include>-----包含一个输出,servlet或jsp页面 3. <s:inputtransferselect list=""></s:inputtransferselect>-----获取form的一个输入 4. <s:iterator></s:iterator>-----用于遍历集合 L: 1. <s:label></s:label>-----只读的标签 M: 1. <s:merge></s:merge>-----合并遍历集合出来的值 O: 1. <s:optgroup></s:optgroup>-----获取标签组 2. <s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右选择框 P: 1. <s:param></s:param>-----为其他标签提供参数 2. <s:password></s:password>-----密码输入框 3. <s:property/>-----得到'value'的属性 4. <s:push value=""></s:push>-----value的值push到栈中,从而使property标签的能够获取value的属性 R: 1. 2. <s:radio list=""></s:radio>-----单选按钮 3. <s:reset></s:reset>-----重置按钮 S: 1. <s:select list=""></s:select>-----单选框 2. <s:set name=""></s:set>-----赋予变量一个特定范围内的值 3. <s:sort comparator=""></s:sort>-----通过属性给list分类 4. <s:submit></s:submit>-----提交按钮 5. <s:subset></s:subset>-----为遍历集合输出子集 T: 1. <s:tabbedPanel id=""></s:tabbedPanel>-----表格框 2. <s:table></s:table>-----表格 3. <s:text name=""></s:text>-----I18n文本信息 4. <s:textarea></s:textarea>-----文本域输入框 5. <s:textfield></s:textfield>-----文本输入框 6. <s:token></s:token>-----拦截器 7. <s:tree></s:tree>-----树 8. <s:treenode label=""></s:treenode>-----树的结构 U: 1. <s:updownselect list=""></s:updownselect>-----多选择框 2. <s:url></s:url>-----创建url ___________________________________________________ struts2框架的标签库分为三类: 用户标签:生成HTML元素 非用户标签:数据访问、逻辑控制等。 AJAX标签:支持AJAX技术。 用户界面标签又分两类: 表单标签:生成HTML页面的from元素 非表单标签:生成页面上的Tab、Tree等 非界面标签又分为数据访问标签和流程控制标签。 控制标签: if/elseif/else标签:控制流程分支。 iteratot标签:对集合属性迭代(属性类型:List、Map、数组)。 append标签:将多个集合对象拼接在一起,组成一个新的集合。将多个集合使用一个<iterator/>标签完成迭代。 generatot标签:将指定的字符串按照规定的分隔符分解成多个子字符串。 merge标签:将多个集合拼接在一起。 subset标签:获取某个集合的子集合。 sort标签:多指定的集合元素进行排序。 数据标签: action:直接调用一个Action,根据executeResult参数,可以将Action的处理结果包含到页面中。 bean:创建一个JavaBean实例。。 date:格式化输出一个日期属性。 debug:生成一个调试链接,当单击该链接时,可以看到当前栈值中的内容。 i18n:指定国际化资源文件的baseName。 include:包含其他的页面资源。 param:设置参数。 property:输出某个值。可以输出值栈、StackContext 、ActionContext中的值。 push:将某个值放入值栈。 set:设置一个新的变量。 text:输出国际化信息。 url:生成一个URL地址。 表单标签: checkbox标签:复选框。 checkboxlist标签:根据一个集合属性创建一系列的复选框。 combobox标签:生成一个单选文本框和一个下拉列表框的组合。 doubleselect标签:生成一个相互关联的列表框,该标签由两个下拉选择框组成。 datetimepicker标签:生成一个日期、时间下拉列表框。 head标签:生成HTML页面的HEAD部分。 file标签:在页面上生成一个上传文件元素。 hidder标签:生成一个不看见的用户输入元素。 select标签:生成下拉列表框。 optiontransferselect标签:创建两个选项以及转移下拉列表项,该标签生成两个下拉列表框,同时生成相应的按钮,这些按钮可以控制选项在两个下拉列表之间移动、排序。 radio标签:单选框。 optgroup标签:生成一个下拉列表框的选择组,下拉列表框中可以包含多个选择组。 token标签:防用户多次提交表单。 textarea标签:文本域。 updownselct标签:支持选项内容的上下移动。 password表单:密码表单域。 textfield标签:单行文本输入框。 非表单标签: actionerror标签:输出Action中getActionErrors()方法返回的异常信息。 actionmessage标签:输出Action中getActionErrors()方法返回的信息。 component标签:生成一个自定义的组件。 div标签:AJAX标签,生成一个div片段。 fielderror标签:输出异常提示信息。 tabbedPanel:AJAX标签,生成HTML中的Tab页。 tree标签:生成一个树形结构。 treenode标签:生成树形结构的节点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值