背景需求:

系统本身的session不能在页面使用

如下:

controller:

  1. @RequestMapping(method=RequestMethod.GET)
  2. public String getIndex(HttpServletRequest request){
  3. //获取工具id,返回页面工具id,为设置页面高度
  4. request.setAttribute("toolId",toolManager.getCurrentPlacement().getId().replaceAll("-","x"));
  5. //查询签到、签退状态
  6. Check check = checkService.getBankCheck();
  7. //存放签到、签退状态
  8. if(check!=null){
  9. sessionManager.getCurrentSession().setAttribute("checkType", check.getCheckType());//----------------设置此session,前台获取不到
  10. }else{
  11. sessionManager.getCurrentSession().setAttribute("checkType", 0);
  12. }
  13. return "module/check/check";
  14. }

定义的tld标签和lib同级:

mysession.tld

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  5. http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  6. version="2.0">
  7. <!-- 定义函数版本 -->
  8. <tlib-version>1.0</tlib-version>
  9. <!-- 定义函数名称 -->
  10. <short-name>session</short-name>
  11. <!-- 定义第一个函数 -->
  12. <function>
  13. <!-- 定义第一个函数:reverse -->
  14. <name>get</name>
  15. <!-- 定义函数处理类 -->
  16. <function-class>com.yunzainfo.common.tag.MySessionTag</function-class>
  17. <!-- 定义函数的对应方法 -->
  18. <function-signature>
  19. java.lang.Object get(java.lang.String)
  20. </function-signature>
  21. </function>
  22.  
  23. </taglib>

执行标签具体的类是:

com.yunzainfo.common.tag.MySessionTag

  1. package com.yunzainfo.common.tag;
  2.  
  3. import org.sakaiproject.tool.cover.SessionManager;
  4.  
  5. public class MySessionTag {
  6.  
  7. public static Object get(String name){
  8. Object o = SessionManager.getCurrentSession().getAttribute(name);
  9. return o == null ?"":o;
  10. }
  11.  
  12. }

页面获取用:

  1. //设置签到、签退状态
  2. if("1"=="${session:get('checkType') }"){ //----------------------用${session:get('checkType') }获取controller中设置的值
  3. $("#status").html("今天您已经签到,请签退");
  4. $("#signIn").attr("disabled",true);
  5. $("#signOut").removeAttr("disabled");
  6. }else if("0"=="${session:get('checkType') }"){
  7. $("#status").html("今天您还未签到,请签到");
  8. $("#signOut").attr("disabled",true);
  9. $("#signIn").removeAttr("disabled");
  10. }else{
  11. $("#status").html("今天您已签退,不能进行操作");
  12. $("#signOut").attr("disabled",true);
  13. $("#signIn").attr("disabled",true);
  14. }

自定义tld标签,页面使用的更多相关文章

  1. 使用自定义tld标签简化jsp的繁琐操作

    最近做一个树形结构的展示,请求目标页面后,后台只返回简单的List,虽然有想过在jsp页面内做一些操作简化,但是太繁琐了,其他的标签又不能满足需求,所以只能自己做一个.使用tld标签可以简化jsp代码 ...

  2. JSP自定义tld方法标签

    卧槽 我们可以通过tld文件,自定义一个方法标签,以便在页面中使用,目录通常放在WEB-INF下面的tlds文件夹: 引入方式示例,直接在jsp上引入tld标签文件: <%@ taglib pr ...

  3. 初识vue-简单的自定义标签页面

    vue3.0比vue2.0简化了许多. 在这里呢就做了一个简单的标签页面.在这当中难免会有些错误,请勿见怪. 1.vue的页面编写,也就是app.vue这个文件作为主入口文件,当然这个主入口文件也可以 ...

  4. 自定义JSP标签库及Properties使用

    自定义JSP标签库及Properties使用 自定义JSP标签 自定义JSP标签技术是在JSP 1.1版本中才出现的,它支持用户在JSP文件中自定义标签,这样可以使JSP代码更加简洁. 这些可重用的标 ...

  5. 自定义jstl标签库

    开发环境:Spring+SpringMVC +Maven +Mybatis JSTL 标签库的配置: 导入对应的 jstl.jar 和 standard.jar ,我使用的配置如下: <prop ...

  6. 自定义JSTL标签和函数库

    一.自定义JSTL标签 1.编写标签处理类: (1)实现 SimpleTag 接口,通过 setJspContext()方法可以获取到 jspContext 对象,实际上也是 pageContext ...

  7. 自定义函数标签(JSTL)

    创建自定义函数标签步骤: 1.创建类,并且方法只能是静态 public static void operation(calculator cal) 2.书写tld <taglib xmlns=& ...

  8. Java自定义简单标签

     Java自定义简单标签可以方便的在页面输出信息,并且对于权限的控制,和对于Jsp标签和servlet代码的分离有着很好的作用. 下面将以权限的控制为例自定义一个标签: 一.标签类型 <wxt: ...

  9. JSP自定义简单标签入门之带有属性

    上面写的那个简单标签来控制页面中标签内容的重复次数是固定的,这就是权限"写死了",这是非常不好的行为,因为其灵活性太差.所以下面就介绍一种使用属性来控制标签内容输出次数的方法. 准 ...

随机推荐

  1. webpack构建与loaders

    loaders 定义 先了解一下webpack,webpack是一个用于针对js文件的构建工具,在被构建的js文件中,我们可以使用require语句和webpack loader,如下: var cs ...

  2. jQuery属性选择器.attr()和.prop()两种方法

    在判断表单单选框是否被选中时,通常会想到使用$('#checkbox').attr('checked')来判断,但在一些情况下,你会发现这种方法并不管用,得到的是undefined. 原来jQuery ...

  3. COCOS2D 释放资源的最佳时机

    有场景A跟场景B,场景A是当前场景,场景B是将要替换的新场景. 那么A场景的资源释放最佳时机是在什么时候呢? 这是释放资源的代码(注意要按这个顺序释放): 1 2 3 4 CCAnimationCac ...

  4. 重温javascript事件机制

    以前用过一段时间的jquery感觉太方便,太强大了,各种动画效果,dom事件.创建节点.遍历.控件及UI库,应有尽有:开发文档也很多,网上讨论的问题更是甚多,种种迹象表明jquery是一个出色的jav ...

  5. lightoj.1048.Conquering Keokradong(二分 + 贪心)

    Conquering Keokradong Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu ...

  6. 【PHP面向对象(OOP)编程入门教程】16.__toString()方法

    我们前面说过在类里面声明“__”开始的方法名的方法(PHP给我们提供的),都是在某一时刻不同情况下自动调用执行的方 法,“__toString()”方法也是一样自动被调用的,是在直接输出对象引用时自动 ...

  7. Lab1--关于安装JUnit的简要描述

    安装JUnit的过程描述: 下载两个jar包: hamcrest-all-1.3.jar junit-4.12.jar 注意在导入完成jar包之后不要随意改变jar包的路径. 创建java程序,书写如 ...

  8. CMD代码页

    不同字符编码在CMD模式下会出现乱码,需要使用 chcp 代码页 命令来更改代码页显示正常. UTF-8  65001 简体中文 936 437          美国 850          多语 ...

  9. 百度定位API报错:leaked ServiceConnection com.baidu.location.LocationClient$1@426122f0

    使用百度MapApi定位时候,当退出当时使用的activity后,则会报如题的异常,解决办法: 1:当退出当前定位的activity时,一定要在onDestroy方法中要mLocClient.stop ...

  10. tomcat 虚拟节点

    <Context path=”Welcome” docBase=”c:\hello\hello” reloadable=”true” /> contex指上下文,实际上就是一个web项目: ...