diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java index e0e74232..ef0044aa 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java @@ -537,6 +537,7 @@ public class SpringBootCallable implements Callable { freeMarkerManager.outputTemp(new File(utils.getAbsolutePath(), "WebUtils.java"), option + "/java/frame/utils/WebUtils.java", ctx); freeMarkerManager.outputTemp(new File(utils.getAbsolutePath(), "IDgenerator.java"), option + "/java/frame/utils/IDgenerator.java", ctx); freeMarkerManager.outputTemp(new File(utils.getAbsolutePath(), "Message.java"), option + "/java/frame/utils/Message.java", ctx); + freeMarkerManager.outputTemp(new File(utils.getAbsolutePath(), "UrlUtil.java"), option + "/java/frame/utils/UrlUtil.java", ctx); //validation freeMarkerManager.outputTemp(new File(validation.getAbsolutePath(), "Dict.java"), option + "/java/frame/validation/Dict.java", ctx); diff --git a/src/main/resources/modules/SpringBoot/java/frame/freemarker/Layout.java b/src/main/resources/modules/SpringBoot/java/frame/freemarker/Layout.java deleted file mode 100644 index f4c2db77..00000000 --- a/src/main/resources/modules/SpringBoot/java/frame/freemarker/Layout.java +++ /dev/null @@ -1,95 +0,0 @@ -package ${basePackage}.frame.freemarker; - -import java.io.File; -import ${basePackage}.config.ActionConfig; -import freemarker.template.TemplateModelException; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.validation.support.BindingAwareModelMap; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; -import org.springframework.web.servlet.DispatcherServlet; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.View; -import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.Locale; -import ${basePackage}.frame.base.Control; -import ${basePackage}.frame.auth.LocalData; - -/** - * 布局帮助类 - * - * @author wangbing - * @version 0.0.1 - * @since 2017-01-01 - */ -@Component -public class Layout { - - @Autowired - private FreeMarkerViewResolver viewResolver; - - private String screenPrefix = "/screen/"; - private String controlPrefix = "/control/"; - private String suffix = ".ftl"; - - public String setScreen() throws TemplateModelException { - try { - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - LocaleResolver localeResolver = (LocaleResolver) request.getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE); - String servletPath = LocalData.getTarget(); - servletPath = servletPath.replaceAll("^/", ""); - - String[] split = servletPath.split("/"); - StringBuilder sb = new StringBuilder(""); - - // 分割组装路径 - for (int i = 0; i < split.length; i++) { - sb.append(split[i]); - if (i != split.length - 1) { - sb.append(File.separator); - } - } - - Locale locale = localeResolver.resolveLocale(request); - String viewName = "screen" + File.separator + sb.toString(); - View view = viewResolver.resolveViewName(viewName, locale); - //无法找到对应screen - if (view == null) { - return ""; - } else { - return screenPrefix + servletPath + suffix; - } - } catch (Exception e) { - e.printStackTrace(); - } - return ""; - } - - public String setControl(String control) { - - // 查找是否存在对应控制面板执行器 - Control controlExec = null; - try { - controlExec = LocalData.getApplicationContext().getBean(ActionConfig.CONTROL_PREFIX + "." + control, Control.class); - - HttpServletRequest request = LocalData.getRequest(); - HttpServletResponse response = LocalData.getResponse(); - - BindingAwareModelMap modelMap = new BindingAwareModelMap(); - controlExec.exec(modelMap, request, response); - - for (String key : modelMap.keySet()) { - request.setAttribute(key, modelMap.get(key)); - } - } catch (BeansException e) { - - } - - control = control.replaceAll("/", File.separator); - return controlPrefix + control + suffix; - } -} diff --git a/src/main/resources/modules/SpringBoot/java/frame/freemarker/ViewNameTranslator.java b/src/main/resources/modules/SpringBoot/java/frame/freemarker/ViewNameTranslator.java deleted file mode 100644 index d6ee420c..00000000 --- a/src/main/resources/modules/SpringBoot/java/frame/freemarker/ViewNameTranslator.java +++ /dev/null @@ -1,106 +0,0 @@ -package ${basePackage}.frame.freemarker; - -import ${basePackage}.frame.auth.LocalData; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.web.servlet.DispatcherServlet; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.View; -import org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator; -import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver; -import javax.annotation.PostConstruct; -import javax.servlet.http.HttpServletRequest; -import java.io.File; -import java.util.Locale; -import java.util.Map; - -/** - * FreemarkerViewName解析器 - * - * @author wangbing - * @version 0.0.1 - * @since 2017-01-01 - */ -@Component("viewNameTranslator") -public class ViewNameTranslator extends DefaultRequestToViewNameTranslator { - - @Autowired - private FreeMarkerViewResolver viewResolver; - @Autowired - private Layout layout; - @Autowired - private Uri uri; - - @PostConstruct - public void setSharedVariable() { - //设置基本工具类 - Map attributesMap = viewResolver.getAttributesMap(); - attributesMap.put("Layout", layout); - attributesMap.put("Uri", uri); - } - - @Override - public String getViewName(HttpServletRequest request) { - String viewName = ""; - try { - LocaleResolver localeResolver = (LocaleResolver) request.getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE); - String servletPath = LocalData.getTarget(); - servletPath = servletPath.replaceAll("^/", ""); - Locale locale = localeResolver.resolveLocale(request); - - {//查询screen - String[] split = servletPath.split("/"); - StringBuilder sb = new StringBuilder(""); - sb.append("screen"); - for (int i = 0; i < split.length; i++) { - sb.append(File.separator); - sb.append(split[i]); - } - viewName = sb.toString(); - View view = viewResolver.resolveViewName(viewName, locale); - if (view == null) { -// LogUtil.e("can not find screen."); -// HttpServletResponse response = LocalData.getResponse(); -// response.setStatus(HttpStatus.NOT_FOUND.value()); - } - } - - {//查找layout - String[] split = servletPath.split("/"); - - int lt = split.length; - while (lt > 0) { - - StringBuilder sb = new StringBuilder(""); - sb.append("layout"); - for (int i = 0; i < lt - 1; i++) { - sb.append(File.separator); - sb.append(split[i]); - } - - viewName = sb.toString() + File.separator + split[split.length - 1]; - - View view = viewResolver.resolveViewName(viewName, locale); - //无法找到对应layout,使用默认layout - if (view == null) { - viewName = sb.toString() + File.separator + "default"; - View defaultView = viewResolver.resolveViewName(viewName, locale); - if (null == defaultView && lt == 1) { - System.err.println("can not find layout/default.ftl"); - } else if (null == defaultView) { - lt--; - } else { - break; - } - } else { - break; - } - } - } - - } catch (Exception e) { - e.printStackTrace(); - } - return viewName; - } -} diff --git a/src/main/resources/modules/SpringBoot/java/frame/freemarker/Uri.java b/src/main/resources/modules/SpringBoot/java/frame/utils/UrlUtil.java similarity index 71% rename from src/main/resources/modules/SpringBoot/java/frame/freemarker/Uri.java rename to src/main/resources/modules/SpringBoot/java/frame/utils/UrlUtil.java index 98c0ce20..6e6c88d4 100644 --- a/src/main/resources/modules/SpringBoot/java/frame/freemarker/Uri.java +++ b/src/main/resources/modules/SpringBoot/java/frame/utils/UrlUtil.java @@ -1,29 +1,29 @@ -package ${basePackage}.frame.freemarker; +package ${basePackage}.frame.utils; -import freemarker.template.TemplateModelException; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; + import javax.servlet.http.HttpServletRequest; import java.util.Locale; /** - * Url帮助类 + * Url工具类 * * @author wangbing * @version 0.0.1 * @since 2017-01-01 */ @Component -public class Uri { +public class UrlUtil { - public String getUrl(String path) throws TemplateModelException { - if (path == null) { + public String getUrl(String url) { + if (url == null) { return ""; } - if (!path.startsWith("/")) { - return "/" + path; + if (!url.startsWith("/")) { + return "/" + url; } HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); @@ -36,6 +36,6 @@ public class Uri { // 上下文路径 String contextPath = request.getContextPath(); - return String.format(Locale.CHINA, "%s://%s:%d%s%s", scheme, serverName, serverPort, contextPath, path); + return String.format(Locale.CHINA, "%s://%s:%d%s%s", scheme, serverName, serverPort, contextPath, url); } }