JSTL学习笔记1-----操作javabean以及属性

  1. 云栖社区>
  2. 博客>
  3. 正文

JSTL学习笔记1-----操作javabean以及属性

usher.yue 2012-04-23 00:29:00 浏览576
展开阅读全文

    JSTL  又称JSP标准标签库 有apache的  jarkata小组开发 同EL表达式目的一样都是为了 将复杂的jsp代码 以标签的形式 显示出来

我们在使用JSTL就要下载jstl.jar 和 standard.jar文件  ,要想tomcat 和 我们的Eclipse 都支持   JSTL那么就要 分别将2个jar 部署到 

tomcat的lib目录下  ,以及将这两个jar  添加到我们项目的  BuildPath中去。 

     添加到BuildPath是为了 我们在Eclipse开发的时候 可以使用JSTL  ,将jar部署到tomcat下是为了使tomcat支持处理jstl 。  

  jstl的jar文件的下载地址 :http://tomcat.apache.org/taglibs/standard/ 

  jstl的参考文档地址 http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/

1、<c:set></c:set>标签对的使用。 

我们可以再  application    page  request  session 的范围内使用jstl添加属性 。 

如下   <c:set  var="num" value="10" scope="page"/>       没有body的形式

          <c:set var="num" scope="page">10</c:set>          带body的形式 都可以对属性进行设置值

   

2、我们还可以为一个java.util.Map对象或者 一个javaBean设置属性的值 。对于  Map来说如果属性不存在那么就会添加一个属性

javaBean如果类型不匹配那么 会自动进行强制转换,如果转换失败那么就会抛出JSPException 异常 。

  <c:set target="${bean}" property="width">100</c:set>     这是将一个bean对象的width属性设置 100 

  <c:set target="${bean}" property="width" value="100"/>     这个同上只是没有body  。

我们要注意的一点是,target是JavaBean对象的名字 ,我们一定要利用EL表达式 "${bean}"进行转换后再赋值  ,不可以 直接"bean",否则出错 。  在jsp动作指令中没这个规矩。 还要注意的一点是使用<c:set></c:set>包标签对的用户 设置javaBean时候要设置的那

个属性 必须要有setXxx()的方法 。  

总之我们在书写javaBean的时候一定要规范javaBean的格式 ,因为这样有助于JSP引擎来知道javaBean  。我们还以使用内省的方式

来操作JavaBean  。       

 

如果有一个JavaBean为  bean  ,并且我们将这个javaBean  设置为了 request.setAttribute("bean",bean); 

那么如下语句将是true  

<%

out.print((bean==request.getAttrubute("bean")));

%> 

 

3、<c:remove  var="属性名"  scope="{page|application|request|session}"/>  是删除指定范围内的一个属性。   

如果我们不指定范围那么JSP引擎会自动搜索 该名称的属性。

4、<c:out  value=""    escapeXml="{true|false}">默认的值</c:out>     

     <c:out  value=""   escapeXml="{true|false}"  defaule=""/> 

这两种结果是一样的 escapeXml为true的时候可以输出特殊字符 。 例如&<>"'等等

对于属性的输出一定要利用EL表达式 转换成字符串 。"${var}" 然后在赋值给value

注意的一点是 :
      如果我们输出的属性不存在  或者null  那么将输出默认值  如下 :

 

<c:set var="num"> 10</c:set> 

<c:remove var="num"/>

<c:out var="num" >属性不存在 </c:out>

结果会显示   属性不存在 。。。   <c:remove></c:remove>相当于调用了pageContext.removeAttribute() ;

pageContextg是javax.servlet.jsp.PageContext  的实例 代表了 jsp上下文 、环境。

5、<c:catch></c:catch>进行异常捕获 

  

<c:catch var="error">

<%=3/0%>

</c:catch>

<c:out var="${error}"/> 

这样就捕获了异常。。。

 

网友评论

登录后评论
0/500
评论