JSP 2.0 使用指南

JSP 2.0 使用指南

  如果Web服务器支持, JSP2.0 是最通用方便的模板语言.

1.使用Servlet2.4/jsp2.0

1. 确定Web Container支持Serverlet2.4, 复制jstl-1.1.2.jar,standard-1.1.2.jar到web-inf/lib (可打开jar的meta-inf来看具体版本)。

2. 在web.xml,Root节点改为

<web-app version=<span class="code-quote">"2.4"</span> xmlns=<span class="code-quote">"http:<span class="code-comment">//java.sun.com/xml/ns/j2ee"</span> xmlns:xsi=<span class="code-quote">"http://www.w3.org/2001/XMLSchema-instance"</span> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
</span>   http:<span class="code-comment">//java.sun.com/xml/ns/j2ee/web-app_2_4.xsd "></span>

3.在jsp中,对core,ftm taglib的引入改为  (留意多了uri里多了jsp)

<%@ taglib prefix=<span class="code-quote">"c"</span> uri=<span class="code-quote">"http:<span class="code-comment">//java.sun.com/jsp/jstl/core"</span>% >
</span><%@ taglib prefix=<span class="code-quote">"fmt"</span> uri=<span class="code-quote">"http:<span class="code-comment">//java.sun.com/jsp/jstl/fmt"</span>% ></span>

2.直接在html里面使用EL,而不是<c:out value=""/>

  充分使用JSP2.0的EL,直接在html中写${book} 而不是<c:out value="${book}">将获得简洁无比,可比美velocity,freemarker的界面。

3. 不要用<c:url value=""/>

   <c:url value=""/> 虽然解决了context-path的问题,但嵌套起来复杂无比.

  建议在公共的taglibs.jsp 加入

<c:set <span class="code-keyword">var</span>=<span class="code-quote">"ctx"</span> value=<span class="code-quote">"${pageContext.request.contextPath}"</span>/>

   然后在使用路径的地方直接编写

<link href=<span class="code-quote">"${ctx}/styles/<span class="code-keyword">default</span>.css"</span> type=<span class="code-quote">"text/css"</span>>

    而不是看得眼花的

<link href=<span class="code-quote">"<c:url value="</span>/styles/<span class="code-keyword">default</span>.css<span class="code-quote">"/>"</span> type=<span class="code-quote">"text/css"</span>>

4.新增的Function标签

    Function标签里最有用的一项是取得List,Map的size了。另外有一些StringUtils和Collection的函数。

<%@ taglib prefix=<span class="code-quote">"fn"</span> uri=<span class="code-quote">"http:<span class="code-comment">//java.sun.com/jsp/jstl/functions"</span>%> ${fn:length(myList)}</span>

    JSTL里面不给调用对象除getXXX()外的任何方法真是件很让让人郁闷的事情!!

5.其他的EL知识点

5.1 EL的运算符

      除了最基本的算术运算符,逻辑运算符,比较运算符外,还有一个empty运算符,用来判断变量是否为null 或list, map的size 是否为零。

<c:<span class="code-keyword">if</span> test=<span class="code-quote">"${not empty myList}"</span>>

EL的运算符都有文字和符号两种版本,如|| 和 or, >= 和 ge,适用于不能使用文字或符号的时候。

5.2 []与. 两种访问属性或元素的方式

       ${book.name}与${book["name"]}等价。

       ${book["name"]}主要用于"name"串为变量,或者字符串中含有"."字符的情况

       如 $ {myMap[order.status]}是访问Map元素的一种很重要的方式。

5.3 list与map

    orderList[0]  返回第一个元素

     用key和value遍历map

<c:forEach <span class="code-keyword">var</span>=<span class="code-quote">"entry"</span> items=<span class="code-quote">"${myMap}"</span>>
     <option value=<span class="code-quote">"${entry.key}"</span>>${entry.value}</option> </c:forEach>

4.4.访问静态变量

      EL本身不支持静态变量访问,变通的方法是写一个tag,将某个类的静态变量反射到一个map中, 参见铁手剑谱2.3 式

     不过使用Map将失去静态变量编译期安全的意义,因此还是建议在这种情况下,使用普通JSP.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值