Search in sources :

Example 11 with Request

use of org.axe.annotation.mvc.Request in project Axe by DongyuCai.

the class HomeController method action.

@Request(value = "/action", method = RequestMethod.GET)
public void action(@RequestParam("token") String token, HttpServletRequest request, HttpServletResponse response, String basePathHashCode) {
    String contextPath = request.getContextPath();
    StringBuilder html = new StringBuilder();
    html.append("<!DOCTYPE html>");
    html.append("<html>");
    html.append("<head>");
    html.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />");
    html.append("<title>axe action</title>");
    html.append("</head>");
    html.append("<body>");
    html.append("<table width=\"100%\">");
    html.append("<tr><td align=\"right\">");
    if (ConfigHelper.getAxeSignIn()) {
        html.append("<a style=\"font-size: 15px;color: #AE0000\" href=\"" + contextPath + "/axe/sign-out?token=" + token + "\"><b>退出</b></a>");
    }
    html.append("&nbsp;<a style=\"font-size: 15px;color: #AE0000\" href=\"" + contextPath + "/axe?token=" + token + "\"><b>首页</b></a>");
    html.append("</td></tr>");
    List<Handler> handlerList = ControllerHelper.getActionList();
    String basePath = "";
    if (basePathHashCode != null) {
        Map<Class<?>, String> hashCodeMap = new HashMap<>();
        List<Handler> controllerHandlerList = new ArrayList<>();
        for (Handler handler : handlerList) {
            Class<?> controller = handler.getControllerClass();
            String hashCode = null;
            if (hashCodeMap.containsKey(controller)) {
                hashCode = hashCodeMap.get(controller);
            } else {
                basePath = controller.getAnnotation(Controller.class).basePath();
                int code = basePath.hashCode();
                if (code < 0) {
                    hashCode = "_" + Math.abs(code);
                } else {
                    hashCode = String.valueOf(code);
                }
                hashCodeMap.put(controller, hashCode);
            }
            if (hashCode.equals(basePathHashCode)) {
                controllerHandlerList.add(handler);
            }
        }
        handlerList = controllerHandlerList;
    }
    basePath = StringUtil.isEmpty(basePath) ? "" : basePath + " - ";
    html.append("<tr><td align=\"center\"><font size=\"28\">" + basePath + "Action list x" + handlerList.size() + "</font></td></tr>");
    html.append("");
    html.append("<tr><td><table cellspacing=\"0px\"><tr><td style=\"background-color: #AE0000\">");
    html.append("&nbsp;<font color=\"white\"><b>Action</b></font>&nbsp;");
    html.append("</td></tr></table></td></tr>");
    html.append("");
    html.append("<tr><td height=\"2px\" style=\"background-color: #AE0000\"></td></tr>");
    html.append("<tr><td>");
    html.append("<table width=\"100%\">");
    html.append("<tr style=\"background-color: #F0F0F0;\">");
    html.append("<td align=\"left\">&nbsp;</td>");
    html.append("<td align=\"left\"><b>Title</b></td>");
    html.append("<td align=\"left\"><b>Mapping</b></td>");
    html.append("<td align=\"left\"><b>Request-Method</b></td>");
    html.append("<td align=\"left\"><b>Controller-Class</b></td>");
    html.append("<td align=\"left\"><b>Action-Method</b></td>");
    html.append("<td align=\"left\"><b>Filter</b></td>");
    html.append("</tr>");
    Map<String, List<Handler>> handlerMap = new HashMap<>();
    for (Handler handler : handlerList) {
        String mappingPath = handler.getMappingPath();
        List<Handler> action = new ArrayList<>();
        if (handlerMap.containsKey(mappingPath)) {
            action = handlerMap.get(mappingPath);
        } else {
            handlerMap.put(mappingPath, action);
        }
        action.add(handler);
    }
    List<String> mappingPathList = StringUtil.sortStringSet(handlerMap.keySet());
    int id = 1;
    for (String mappingPath : mappingPathList) {
        List<Handler> action = handlerMap.get(mappingPath);
        for (Handler handler : action) {
            Controller controller = handler.getControllerClass().getAnnotation(Controller.class);
            int code = controller.basePath().hashCode();
            String hashCode = null;
            if (code < 0) {
                hashCode = "_" + Math.abs(code);
            } else {
                hashCode = String.valueOf(code);
            }
            html.append("<tr>");
            html.append("<td align=\"left\">" + (id++) + "</td>");
            html.append("<td align=\"left\">" + controller.title() + "." + handler.getActionMethod().getAnnotation(Request.class).title() + "</td>");
            html.append("<td align=\"left\">" + mappingPath + "</td>");
            html.append("<td align=\"left\">" + handler.getRequestMethod() + "</td>");
            html.append("<td align=\"left\"><a href=\"" + contextPath + "/axe/controller-" + hashCode + "/action?token=" + token + "\">" + handler.getControllerClass().getName() + "</a></td>");
            hashCode = null;
            code = mappingPath.hashCode();
            if (code < 0) {
                hashCode = "_" + Math.abs(code);
            } else {
                hashCode = String.valueOf(code);
            }
            html.append("<td align=\"left\"><a href=\"" + contextPath + "/axe/action/" + hashCode + "?token=" + token + "\">" + handler.getActionMethod().getName() + "</a></td>");
            html.append("<td align=\"left\">x" + handler.getFilterList().size() + "</td>");
            html.append("</tr>");
        }
    }
    html.append("</table>");
    html.append("</td></tr>");
    html.append("</table>");
    html.append("</body>");
    html.append("</html>");
    printHtml(response, html.toString());
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Handler(org.axe.bean.mvc.Handler) Controller(org.axe.annotation.ioc.Controller) ArrayList(java.util.ArrayList) List(java.util.List) HttpServletRequest(javax.servlet.http.HttpServletRequest) Request(org.axe.annotation.mvc.Request)

Example 12 with Request

use of org.axe.annotation.mvc.Request in project Axe by DongyuCai.

the class HomeController method actionDetail.

@Request(value = "/action/{mappingHashCode}", method = RequestMethod.GET)
public void actionDetail(@RequestParam("mappingHashCode") String mappingHashCode, @RequestParam("token") String token, HttpServletRequest request, HttpServletResponse response) {
    String contextPath = request.getContextPath();
    do {
        if (StringUtil.isEmpty(mappingHashCode))
            break;
        StringBuilder html = new StringBuilder();
        html.append("<!DOCTYPE html>");
        html.append("<html>");
        html.append("<head>");
        html.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />");
        html.append("<title>axe action detail</title>");
        html.append("</head>");
        html.append("<body>");
        html.append("<table width=\"100%\">");
        html.append("<tr><td align=\"right\">");
        if (ConfigHelper.getAxeSignIn()) {
            html.append("<a style=\"font-size: 15px;color: #AE0000\" href=\"" + contextPath + "/axe/sign-out?token=" + token + "\"><b>退出</b></a>");
        }
        html.append("&nbsp;<a style=\"font-size: 15px;color: #AE0000\" href=\"" + contextPath + "/axe?token=" + token + "\"><b>首页</b></a>");
        html.append("</td></tr>");
        List<Handler> handlerList = ControllerHelper.getActionList();
        Handler handler = null;
        for (Handler handler_ : handlerList) {
            String hashCode = null;
            int code = handler_.getMappingPath().hashCode();
            if (code < 0) {
                hashCode = "_" + Math.abs(code);
            } else {
                hashCode = String.valueOf(code);
            }
            if (hashCode.equals(mappingHashCode)) {
                handler = handler_;
                break;
            }
        }
        if (handler == null)
            break;
        String basePath = handler.getControllerClass().getAnnotation(Controller.class).basePath();
        html.append("<tr><td align=\"center\"><font size=\"28\">Action Detail - " + handler.getMappingPath() + "</font></td></tr>");
        html.append("");
        html.append("<tr><td><table cellspacing=\"0px\"><tr><td style=\"background-color: #AE0000\">");
        html.append("&nbsp;<font color=\"white\"><b>Action Detail</b></font>&nbsp;");
        html.append("</td></tr></table></td></tr>");
        html.append("<tr><td height=\"2px\" style=\"background-color: #AE0000\"></td></tr>");
        html.append("<tr><td>");
        html.append("<table width=\"100%\">");
        html.append("<tr style=\"background-color: #F0F0F0;\">");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\"><b>属性</b></td>");
        html.append("<td align=\"left\"><b>值</b></td>");
        html.append("</tr>");
        html.append("<tr>");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\">action-title</td>");
        html.append("<td align=\"left\">" + handler.getActionMethod().getAnnotation(Request.class).title() + "</td>");
        html.append("</tr>");
        html.append("<tr>");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\">mapping</td>");
        html.append("<td align=\"left\">" + handler.getMappingPath() + "</td>");
        html.append("</tr>");
        html.append("<tr>");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\">request-method</td>");
        html.append("<td align=\"left\">" + handler.getRequestMethod() + "</td>");
        html.append("</tr>");
        html.append("<tr>");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\">content-type</td>");
        html.append("<td align=\"left\">" + handler.getContentType() + "</td>");
        html.append("</tr>");
        html.append("<tr>");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\">character-encoding</td>");
        html.append("<td align=\"left\">" + handler.getCharacterEncoding() + "</td>");
        html.append("</tr>");
        html.append("<tr>");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\">action-method</td>");
        html.append("<td align=\"left\">" + handler.getActionMethod().toString() + "</td>");
        html.append("</tr>");
        html.append("<tr>");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\">controller-title</td>");
        html.append("<td align=\"left\">" + handler.getControllerClass().getAnnotation(Controller.class).title() + "</td>");
        html.append("</tr>");
        html.append("<tr>");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\">basePath</td>");
        html.append("<td align=\"left\">" + basePath + "</td>");
        html.append("</tr>");
        html.append("<tr>");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\">action-controller</td>");
        html.append("<td align=\"left\">" + handler.getControllerClass().getName() + "</td>");
        html.append("</tr>");
        html.append("</table>");
        html.append("</td></tr><tr><td>&nbsp;</td></tr>");
        html.append("");
        html.append("");
        html.append("<tr><td><table cellspacing=\"0px\"><tr><td style=\"background-color: #AE0000\">");
        html.append("&nbsp;<font color=\"white\"><b>Filter list</b></font>&nbsp;");
        html.append("</td></tr></table></td></tr>");
        html.append("<tr><td height=\"2px\" style=\"background-color: #AE0000\"></td></tr>");
        html.append("<tr><td>");
        html.append("<table width=\"100%\">");
        html.append("<tr style=\"background-color: #F0F0F0;\">");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\"><b>Level</b></td>");
        html.append("<td align=\"left\"><b>Class</b></td>");
        html.append("<td align=\"left\"><b>Mapping</b></td>");
        html.append("<td align=\"left\"><b>NotMapping</b></td>");
        html.append("</tr>");
        List<Filter> filterList = handler.getFilterList();
        int id = 1;
        for (Filter filter : filterList) {
            html.append("<tr>");
            html.append("<td align=\"left\">" + (id++) + "</td>");
            html.append("<td align=\"left\">" + filter.setLevel() + "</td>");
            html.append("<td align=\"left\">" + filter.getClass() + "</td>");
            Pattern mappingPattern = filter.setMapping();
            String mappingRegex = mappingPattern == null ? "" : mappingPattern.toString();
            html.append("<td align=\"left\">" + mappingRegex + "</td>");
            Pattern notMappingPattern = filter.setNotMapping();
            String notMappingRegex = notMappingPattern == null ? "" : notMappingPattern.toString();
            html.append("<td align=\"left\">" + notMappingRegex + "</td>");
            html.append("</tr>");
        }
        html.append("</table>");
        html.append("</td></tr><tr><td>&nbsp;</td></tr>");
        html.append("");
        html.append("");
        html.append("<tr><td><table cellspacing=\"0px\"><tr><td style=\"background-color: #AE0000\">");
        html.append("&nbsp;<font color=\"white\"><b>Interceptor list</b></font>&nbsp;");
        html.append("</td></tr></table></td></tr>");
        html.append("<tr><td height=\"2px\" style=\"background-color: #AE0000\"></td></tr>");
        html.append("<tr><td>");
        html.append("<table width=\"100%\">");
        html.append("<tr style=\"background-color: #F0F0F0;\">");
        html.append("<td align=\"left\">&nbsp;</td>");
        html.append("<td align=\"left\"><b>Class</b></td>");
        html.append("</tr>");
        List<org.axe.interface_.mvc.Interceptor> interceptorList = handler.getInterceptorList();
        id = 1;
        for (org.axe.interface_.mvc.Interceptor interceptor : interceptorList) {
            html.append("<tr>");
            html.append("<td align=\"left\">" + (id++) + "</td>");
            html.append("<td align=\"left\">" + interceptor.getClass() + "</td>");
            html.append("</tr>");
        }
        html.append("</table>");
        html.append("</td></tr><tr><td>&nbsp;</td></tr>");
        html.append("</table>");
        html.append("</body>");
        html.append("</html>");
        printHtml(response, html.toString());
    } while (false);
}
Also used : Pattern(java.util.regex.Pattern) Handler(org.axe.bean.mvc.Handler) Controller(org.axe.annotation.ioc.Controller) Filter(org.axe.interface_.mvc.Filter) Interceptor(org.axe.annotation.mvc.Interceptor) SignInInterceptor(org.axe.home.interceptor.SignInInterceptor) HomeInterceptor(org.axe.home.interceptor.HomeInterceptor) HttpServletRequest(javax.servlet.http.HttpServletRequest) Request(org.axe.annotation.mvc.Request)

Example 13 with Request

use of org.axe.annotation.mvc.Request in project Axe by DongyuCai.

the class TestController2 method test.

@Request(value = "page", method = RequestMethod.GET)
public void test(HttpServletResponse response) {
    System.out.println("/root");
    PrintWriter writer = null;
    try {
        writer = response.getWriter();
        writer.write("/root");
        writer.flush();
    } catch (Exception e) {
        try {
            if (writer != null) {
                writer.close();
            }
        } catch (Exception e2) {
            e2.printStackTrace();
        }
    }
}
Also used : PrintWriter(java.io.PrintWriter) Request(org.axe.annotation.mvc.Request)

Example 14 with Request

use of org.axe.annotation.mvc.Request in project Axe by DongyuCai.

the class TestController method getOne.

//==================== postman success ================//
@Request(value = "/getOne/{id}", method = RequestMethod.GET)
public Data getOne(@RequestParam("id") Long id, Param param) {
    //    	Data data = analysisParam(param);
    if (id == null) {
        throw new RestException(RestException.SC_BAD_REQUEST, "id不正确");
    }
    TestTable one = testService.get(id);
    Data data = new Data(one);
    return data;
}
Also used : RestException(org.axe.exception.RestException) Data(org.axe.bean.mvc.Data) TestTable(org.test.bean.TestTable) HttpServletRequest(javax.servlet.http.HttpServletRequest) Request(org.axe.annotation.mvc.Request)

Example 15 with Request

use of org.axe.annotation.mvc.Request in project Axe by DongyuCai.

the class TestController method postPathParam3.

@Request(value = "/post100/4id_name", method = RequestMethod.POST)
public Data postPathParam3(Param param) {
    System.out.println("postPathParam3");
    Data data = analysisParam(param);
    return data;
}
Also used : Data(org.axe.bean.mvc.Data) HttpServletRequest(javax.servlet.http.HttpServletRequest) Request(org.axe.annotation.mvc.Request)

Aggregations

Request (org.axe.annotation.mvc.Request)15 HttpServletRequest (javax.servlet.http.HttpServletRequest)12 Method (java.lang.reflect.Method)4 Controller (org.axe.annotation.ioc.Controller)4 ArrayList (java.util.ArrayList)3 HashMap (java.util.HashMap)3 Data (org.axe.bean.mvc.Data)3 RequestMethod (org.axe.constant.RequestMethod)3 List (java.util.List)2 Pattern (java.util.regex.Pattern)2 Handler (org.axe.bean.mvc.Handler)2 RestException (org.axe.exception.RestException)2 Filter (org.axe.interface_.mvc.Filter)2 PrintWriter (java.io.PrintWriter)1 Annotation (java.lang.annotation.Annotation)1 SimpleDateFormat (java.text.SimpleDateFormat)1 Date (java.util.Date)1 Map (java.util.Map)1 ServletContext (javax.servlet.ServletContext)1 Interceptor (org.axe.annotation.mvc.Interceptor)1