分类 技术相关 下的文章

json对象直接作为参数在地址栏中会被阶段,在转发到其它应用中无法直接打开,当然将对象的各个属性分开拼接也可以传参,但是稍微麻烦,最简单的方法是通过Base64编码方式传参。

用JS进行Base64编码、解码

从IE10+浏览器开始,所有浏览器就原生提供了Base64编码、解码方法,不仅可以用于浏览器环境,Service Worker环境也可以使用。
方法名就是 atob 和 btoa ,具体语法如下:

window.btoa('hello world') // 编码"aGVsbG8gd29ybGQ="
window.atob("aGVsbG8gd29ybGQ=") // 解码"hello world"

使用开源的base64 js类库

https://links.jianshu.com/go?to=https://github.com/dankogai/js-base64
开源的base64.js ,使用很简单,浏览器引入该JS文件,然后Base64编码这样:

Base64.encode('hello world'); // 编码"aGVsbG8gd29ybGQ="
解码就调用 decode方法,如下:
Base64.decode("aGVsbG8gd29ybGQ="); // 解码'hello world'

方法: 写一个InitializingBean实现类,初始化后给Beetl设置共享变量即可,如下:

@Configuration
public class MyInitializingBean implements InitializingBean {

@Override
    public void afterPropertiesSet() {
            
        // 设置Beetl GroupTemplate,如果不设置,取上下文中唯一的GroupTemplate对象
        this.groupTemplate = BeetlUtils.getResourceGroupTemplate();
    
        // 设置Beetl全局变量
        Map<String, Object> sharedVars = this.groupTemplate.getSharedVars();
        if (sharedVars == null){
            sharedVars = MapUtils.newHashMap(); 
        }
        sharedVars.put("你的全局变量名,如ctxStatic", '你的全局变量值如ctxPath/static');
        sharedVars.put("你的全局变量名2,如ctxStatic2", '你的全局变量值如ctxPath/static2');
        sharedVars.put("你的全局变量名3,如ctxStatic3", '你的全局变量值如ctxPath/static3');
        this.groupTemplate.setSharedVars(sharedVars);
        
    }
}

更多详见:
https://gitee.com/thinkgem/jeesite4/issues/IICBF

 解决办法,需要在站点根目录下添加.htaccess文件即可

RewriteEngine On
RewriteBase /
RewriteCond %{http_host} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{http_host}/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

其他说明:

RewriteCond %{http_host} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{http_host}/$1 [L,R=301]

这两行代码是 让非www跳转到www的域名下。

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。