• 自定义tld标签,页面使用


    背景需求:

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

    如下:

    controller:

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

    定义的tld标签和lib同级:

    mysession.tld

    <?xml version="1.0" encoding="UTF-8"?>
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"     
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"     
        version="2.0">   
        <!-- 定义函数版本 -->
        <tlib-version>1.0</tlib-version>
        <!-- 定义函数名称 -->
        <short-name>session</short-name>
        <!-- 定义第一个函数 -->
        <function>
            <!-- 定义第一个函数:reverse -->
            <name>get</name>
            <!-- 定义函数处理类 -->
            <function-class>com.yunzainfo.common.tag.MySessionTag</function-class>
            <!-- 定义函数的对应方法 -->
            <function-signature>
                java.lang.Object get(java.lang.String)
            </function-signature>
        </function>
        
        
    </taglib>

    执行标签具体的类是:

    com.yunzainfo.common.tag.MySessionTag

    package com.yunzainfo.common.tag;
    
    import org.sakaiproject.tool.cover.SessionManager;
    
    
    public class MySessionTag {
            
            public static Object get(String name){
                Object o = SessionManager.getCurrentSession().getAttribute(name);
                return o == null ?"":o;
            }
            
    
    }

    页面获取用:

    //设置签到、签退状态
                if("1"=="${session:get('checkType') }"){                   //----------------------用${session:get('checkType') }获取controller中设置的值
                    $("#status").html("今天您已经签到,请签退");
                    $("#signIn").attr("disabled",true);
                    $("#signOut").removeAttr("disabled");
                }else if("0"=="${session:get('checkType') }"){
                    $("#status").html("今天您还未签到,请签到");
                    $("#signOut").attr("disabled",true);
                    $("#signIn").removeAttr("disabled");
                }else{
                    $("#status").html("今天您已签退,不能进行操作");
                    $("#signOut").attr("disabled",true);
                    $("#signIn").attr("disabled",true);
                }
  • 相关阅读:
    cocos2d 接 android sdk 的一个小坑 关于armbeabi 和 armbeabiv7a
    关于ant引用android第三方工程打包的问题, invalid resource directory name: F:\workspace\Zlib\bin\res/crunch
    C语言I博客作业04
    C语言I博客作业07
    第一周作业
    C语言I博客作业05
    C语言I博客作业03
    C语言I博客作业02
    C语言I博客作业06
    调研《构建之法》指导下的优秀实践作品三篇
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/5369142.html
Copyright © 2020-2023  润新知