Chinaunix首页 | 论坛 | 博客
  • 博客访问: 218518
  • 博文数量: 11
  • 博客积分: 2511
  • 博客等级: 少校
  • 技术积分: 555
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-31 22:52
文章分类

全部博文(11)

文章存档

2009年(1)

2008年(10)

我的朋友

分类: Java

2008-11-06 17:30:47

在jsp1.x中如果需要自定义标记就必须写selvet,然后写tld文件,然后加载如web.xml,到了jsp2.0就不需要在写servlet了我们可以想写jsp文件一样写自定义标记了,该标记中使用jstl来做一些显示先看一下我自己写的一个自定义标记(haspower.tag):
    xmlns=""
    xmlns:c=""
    xmlns:fn="">
   
   

   
   
       
            String taskCodeJ = (String)jspContext.getAttribute("taskCode");
            PrpDUserBaseExt ext = (PrpDUserBaseExt)session.getAttribute("user");
            request.setAttribute("ispower",Boolean.valueOf(new Authority().checkPower(ext.getUserCode(),ext.getComCode(),"",taskCodeJ)));
       

   
       
           
       

       
       

   



将该文件保存在项目的/WEB-INF/tags/文件夹下或者WEB-INF/tags/的子目录下,我是放在了/WEB-INF/tags/文件夹下。然后使用该标记和其他标记一样引用就行了使用如下:
1,引入标记库<%@taglib prefix="tags" tagdir="/WEB-INF/tags"%>
2,使用自定义标记:
  
      test
  

该标记的意思是如果该用户有"01"的权限那么页面上就会显示test,如果没有那么就不显示了。
注:
在使用jsp2.0标记库的时候发现如果在内部执行已经写好的带参数的java方法那么就不能使用<%%>这个标记了,就必须使用来取代<%%>标记,同时如果使用自定义标记的属性的值如(taskCode)就使用jspContext来获取了,因为在使用自定义标记的话他对外的范围也就是page了,而不再是session,request了,但是在标记中能取到session中定义的如PrpDUserBaseExt ext = (PrpDUserBaseExt)session.getAttribute("user");就是从外层session中拿到的





阅读(1184) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~