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

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}"/>

这样就捕获了异常。。。

你可能感兴趣的:(javabean)