zoukankan      html  css  js  c++  java
  • 前端按钮级后端注解获取

    一、简述需求:

    通过前端页面请求后端,后台获取页面按钮列表,通过编写统一注解,获取按钮列表传输到前端,前端遍历按钮列表

    二、实现经过:

    1.首先需要定义个注解接口

    import java.lang.annotation.Documented;
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    /**
     * ToolBar生成
     */
    @Target({ElementType.METHOD })
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface ToolBar {
    
    }

    2.编写注解的主体

    import org.aspectj.lang.ProceedingJoinPoint;
    import org.aspectj.lang.annotation.Around;
    import org.aspectj.lang.annotation.Aspect;
    import org.springframework.core.annotation.Order;
    import org.springframework.stereotype.Component;
    import org.springframework.web.context.request.RequestContextHolder;
    import org.springframework.web.context.request.ServletRequestAttributes;
    
    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletRequest;
    import java.util.List;
    
    /**
     * toolBar菜单生成
     */
    @Order(0)
    @Aspect
    @Component
    public class ToolBarAspect {
        @Resource
        private MenuService menuService;
        
        @Around("@annotation(toolBar)")
        // 可以直接捕获下面这个方法中参数所设定的注解类型
        public Object toolBarAspect(ProceedingJoinPoint joinPoint, ToolBar toolBar)
                throws Throwable {
            //这里做按钮列表的参数接收和到数据库获取按钮的列表的处理,可以根据实际情况编写  ***开始***
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
                    .getRequestAttributes()).getRequest();
            Integer parentPathId = Integer.valueOf(request.getParameter("permId"));
            List<Menu> pathList = menuService.getSubMenu(parentPathId);
            //按钮列表
            request.setAttribute("toolBarList", pathList);
            //按钮统一url
            request.setAttribute("formUrl", request.getServletPath()+"?permId="+parentPathId);
            //这里做按钮列表的参数接收和到数据库获取按钮的列表的处理,可以根据实际情况编写  ***结束***
            
            return joinPoint.proceed();
    
        }
    }

    三、切片调用

    直接通过

    @ToolBar

    注解进行调用,如:

    四、前端调用

    这边使用的是framemark模板进行遍历

    <#list toolBarList as list>
        <div class="layui-inline" >
            <button id="${list.url}">${list.name}</button>
        </div>
    </#list>

    注意:绑定按钮需要前端进行绑定编写

    五、编写自定义注解

    java编写自定义注解需要使用到元注解

    元注解(meta-annotation):

     元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:
     1.@Target,
     2.@Retention,
     3.@Documented,
     4.@Inherited

      自定义注解详情  

  • 相关阅读:
    Android开发 将数据保存到SD卡
    Android手机拨打电话的开发实例
    Android动画的实现 上
    Windows 7旗舰版搭建andriod 4.0开发环境记录
    [转载]Android开发常用调试技术记录
    暂停和恢复Activity Android
    Android传感器编程带实例
    用VS2010开发Android应用的配置方法
    安卓Activity界面切换添加动画特效
    在安卓开发中使用SQLite数据库操作实例
  • 原文地址:https://www.cnblogs.com/G-yong/p/10330186.html
Copyright © 2011-2022 走看看