소스 검색

1.升级 springboot 版本后, freemarker 无法从 ServletContext 中读取变量, 原因是 freemarker 使用的 javax 和 springboot 的 jakarta 的不兼容, 具体可见 https://github.com/spring-projects/spring-boot/issues/34637
2.在 HandlerInterceptor#postHandle 方法中向 ModelAndView 注入变量

reghao 4 달 전
부모
커밋
5a89c28602

+ 5 - 0
web/pom.xml

@@ -108,6 +108,11 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-freemarker</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
+            <version>2.3.34</version>
+        </dependency>
 
         <dependency>
             <groupId>org.springdoc</groupId>

+ 2 - 1
web/src/main/java/cn/reghao/bnt/web/config/AccessInterceptor.java

@@ -70,7 +70,8 @@ public class AccessInterceptor implements HandlerInterceptor {
             if (accountInfo != null) {
                 String msgCount = userMessageService.getUnreadCount();
                 accountInfo.setMsgCount(msgCount);
-                ServletUtil.getSession().setAttribute("profile", accountInfo);
+                //ServletUtil.getSession().setAttribute("profile", accountInfo);
+                modelAndView.addObject("profile", accountInfo);
             }
         }
 

+ 0 - 3
web/src/main/resources/application.yml

@@ -88,11 +88,8 @@ app:
   luceneDir: ${app.basedir}/lucene
   fileDir: ${app.basedir}/file
   options:
-    site_keywords: blog
-    site_description: linux,java
     site_logo: /dist/images/logo.png
     site_favicon: /dist/images/favicon.png
-    editor: markdown
 management:
   endpoints:
     web:

+ 1 - 1
web/src/main/resources/templates/admin/file/doclist.ftl

@@ -56,7 +56,7 @@
             });
         }
 
-        var upload_url = _MTONS.BASE_PATH + '/admin/sys/file/upload/images';
+        var upload_url = '/admin/sys/file/upload/images';
         $('#upload_btn').change(function(){
             $(this).upload(upload_url, function(data){
                 if (data.code === 0) {

+ 1 - 1
web/src/main/resources/templates/admin/file/imglist.ftl

@@ -61,7 +61,7 @@
             });
         }
 
-        var upload_url = _MTONS.BASE_PATH + '/admin/sys/file/upload/images';
+        var upload_url = '/admin/sys/file/upload/images';
         $('#upload_btn').change(function(){
             $(this).upload(upload_url, function(data){
                 if (data.code === 0) {

+ 0 - 17
web/src/main/resources/templates/admin/oauth/list.ftl

@@ -19,23 +19,6 @@
                     </div>
                 </div>
                 <div class="box-body">
-                    <#list page.content as row>
-                        <div class="col-md-3 side-left">
-                            <div class="user-panel">
-                                <div class="pull-left image">
-                                    <img src="<@resource src=profile.avatarUrl/>" class="img-circle" alt="User Image">
-                                </div>
-                                <div class="pull-left info">
-                                    <a class="btn btn-default btn-sm" href="/admin/account/oauth/view/${row.clientId}">
-                                        <span style="color: blue">${row.clientId}</span>
-                                    </a>
-                                </div>
-                            </div>
-                        </div>
-                    </#list>
-                    <div class="box-footer">
-                        <@pager query page 5 />
-                    </div>
                 </div>
             </div>
         </div>

+ 2 - 8
web/src/main/resources/templates/admin/ui.ftl

@@ -8,8 +8,8 @@
         <title>Admin</title>
 
         <!-- Favicons -->
-        <link href="<@resource src=options['site_favicon']/>" rel="apple-touch-icon-precomposed" />
-        <link href="<@resource src=options['site_favicon']/>" rel="shortcut icon" />
+        <link href="/dist/images/favicon.png" rel="apple-touch-icon-precomposed" />
+        <link href="/dist/images/favicon.png" rel="shortcut icon" />
 
         <!-- Bootstrap -->
         <link href="${base}/dist/vendors/bootstrap/css/bootstrap.min.css" rel="stylesheet">
@@ -22,12 +22,6 @@
         <link href="${base}/dist/css/skins/skin-blue.css" rel="stylesheet">
         <link rel="stylesheet" href="/dist/css/sidebar-menu.css">
 
-        <script type="text/javascript">
-            var _MTONS = _MTONS || {};
-            _MTONS.BASE_PATH = '${base}';
-            _MTONS.LOGIN_TOKEN = '${profile.userId}';
-        </script>
-
         <!-- jQuery -->
         <script src="${base}/dist/js/jquery.min.js"></script>
         <script src="${base}/dist/js/plugins.js"></script>

+ 0 - 8
web/src/main/resources/templates/classic/channel/view.ftl

@@ -3,14 +3,6 @@
         <title>${view.title}</title>
     </@layout.put>
 
-    <@layout.put block="keywords">
-        <meta name="keywords" content="view.keywords?default(options['site_keywords'])">
-    </@layout.put>
-
-    <@layout.put block="description">
-        <meta name="description" content="view.description?default(options['site_description'])">
-    </@layout.put>
-
     <@layout.put block="contents">
         <div class="row main">
             <div class="col-xs-12 col-md-9 side-left topics-show">

+ 1 - 1
web/src/main/resources/templates/classic/inc/footer.ftl

@@ -3,7 +3,7 @@
         <div class="footer-row">
             <nav class="footer-nav">
                 <a class="footer-nav-item footer-nav-logo" href="${base}/bg">
-                    <img src="<@resource src=options['site_logo']/>" alt="mblog"/>
+                    <img src="/dist/images/logo.png" alt="myblog"/>
                 </a>
                 <span class="footer-nav-item">Powered by <a href="//git.reghao.cn/reghao" target="_blank">reghao</a></span>
             </nav>

+ 1 - 1
web/src/main/resources/templates/classic/inc/header.ftl

@@ -21,7 +21,7 @@
                     <span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
                 </button>
                 <a class="navbar-brand" href="/">
-                    <img src="<@resource src=options['site_logo']/>"/>
+                    <img src="/dist/images/logo.png" alt="myblog"/>
                 </a>
             </div>
             <div class="collapse navbar-collapse">

+ 2 - 16
web/src/main/resources/templates/classic/inc/layout.ftl

@@ -25,14 +25,6 @@
         <title>MyBlog</title>
     </@layout.block>
 
-    <@layout.block name="keywords">
-        <meta name="keywords" content="mtons, ${options['site_keywords']}">
-    </@layout.block>
-
-    <@layout.block name="keywords">
-        <meta name="description" content="${options['site_description']}">
-    </@layout.block>
-
     <link href="${base}/dist/vendors/pace/themes/pace-theme-minimal.css" rel="stylesheet"/>
     <link href="${base}/dist/vendors/bootstrap/css/bootstrap.min.css" rel="stylesheet"/>
     <link href="${base}/dist/css/editor.css" rel="stylesheet"/>
@@ -49,18 +41,12 @@
     <script src="/dist/js/jsencrypt_3.3.2.min.js"></script>
     <script src="${base}/dist/js/video.min.js"></script>
 
-    <script type="text/javascript">
-        var _MTONS = _MTONS || {};
-        _MTONS.BASE_PATH = '${base}';
-        _MTONS.LOGIN_TOKEN = '${profile.userId}';
-    </script>
-
     <script src="${base}/dist/js/sea.js"></script>
     <script src="${base}/dist/js/sea.config.js"></script>
 
     <!-- Favicons -->
-    <link href="<@resource src=options['site_favicon']/>" rel="apple-touch-icon-precomposed" />
-    <link href="<@resource src=options['site_favicon']/>" rel="shortcut icon" />
+    <link href="/dist/images/favicon.png" rel="apple-touch-icon-precomposed" />
+    <link href="/dist/images/favicon.png" rel="shortcut icon" />
 
     <@layout.block name="head">
         <script src="${base}/dist/js/sea.js"></script>

+ 0 - 8
web/src/main/resources/templates/classic/zzz/about.ftl

@@ -3,14 +3,6 @@
         <title>${view.title}</title>
     </@layout.put>
 
-    <@layout.put block="keywords">
-        <meta name="keywords" content="view.keywords?default(options['site_keywords'])">
-    </@layout.put>
-
-    <@layout.put block="description">
-        <meta name="description" content="view.description?default(options['site_description'])">
-    </@layout.put>
-
     <@layout.put block="contents">
         <div class="row main">
             <div class="col-xs-12 col-md-9 side-left topics-show">