前端按鈕級後端註解獲取

1、簡述需求:html

經過前端頁面請求後端,後臺獲取頁面按鈕列表,經過編寫統一註解,獲取按鈕列表傳輸到前端,前端遍歷按鈕列表前端

2、實現通過:java

1.首先須要定義個註解接口web

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.編寫註解的主體spring

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();

    }
}

3、切片調用數據庫

直接經過後端

@ToolBar

註解進行調用,如:ui

4、前端調用url

這邊使用的是framemark模板進行遍歷spa

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

注意:綁定按鈕須要前端進行綁定編寫

5、編寫自定義註解

java編寫自定義註解須要使用到元註解

元註解(meta-annotation):

 元註解的做用就是負責註解其餘註解。Java5.0定義了4個標準的meta-annotation類型,它們被用來提供對其它 annotation類型做說明。Java5.0定義的元註解:
 1.@Target,
 2.@Retention,
 3.@Documented,
 4.@Inherited

  自定義註解詳情  

相關文章
相關標籤/搜索