前言:
在使用spring MVC 结合 thymeleaf和 wind10ui开发的时候,wind10ui打开子窗口的事件的openURL方法中的url参数默认会加上http://开头,所以当使用MVC模式开发的时候,url填写控制器映射名称的时候就会访问失败。
思路:
thymeleaf中可以是可以在html页面中读取.properties文件内容的,但是并不是读取application.properties文件中的内容,若读取该文件或者其他自定义名称的.properties文件的时候,springboot会检查当前使用者的语言,而产生乱码现象。所以,thymeleaf中使用国家化的文件存放的内容是可以通过thymeleaf在html页面中读取出来的。但是,国际化文件命名是有规则的。
名称必须用messages开始,要不然识别不了,因为springboot默认将国际化的配置文名称定义为messages。
以下是国际化文件的命名,(此处我们创建的是messages.properties文件)
messages.properties (默认,当找不到语言的配置的时候,读取该文件的内容)。
messages_zh_CN.properties(中文)
messages_en_US.properties(英文)
在messages.properties文件中配置想要在win10ui openURL中的参数url的值。例如:
admin_welcome_openUrl=http://localhost:8080/SSMDemo2/Admin
但是在wind10ui 的图标代码例子如下,但是不能在此处的onclick方法中使用thymeleaf的写法,若写成 th:οnclick="..."运行就会报错。
<div class="shortcut" onclick="Win10.openUrl('http://win10ui.yuri2.cn','<img class=\'icon\' src=\'./img/icon/win10.png\'/>Win10-UI官网')">
<img class="icon" src="./img/icon/win10.png"/>
<div class="title">Win10-UI官网</div>
</div>
解决这个办法,我们可以将onclick 中的方法写到jq里面。
在wind10ui的官方文档中,我们可以看到Win10.onReady方法是用来写初始化完成后的代码块。所以,我们可以在该方法中使用如下写法:
Win10.onReady(function () {
//设置壁纸
Win10.setBgUrl({
main: [[@{/frame/win10ui/img/wallpapers/main.jpg}]],
mobile: [[@{/frame/win10ui/img/wallpapers/mobile.jpg}]],
});
//设置动画
Win10.setAnimated([
'animated flip',
'animated bounceIn',
], 0.01);
//打开自定义图标 [[#{admin_welcome_openUrl}]]:为读取massages.propertis文件对应的内容
$("#admin_welcome_openUrl").click(function(){
Win10.openUrl([[#{admin_welcome_openUrl}]],'<img class=icon th:src=[[@{/zhang/images/icons/adminLogo.png}]]/>管理员中心');
});
});
而html标签这将onclick方法删除,并为目标添加一个ID,如下:
<div id="win10-shortcuts" class="shortcuts-hidden">
<!-- id="admin_welcome_openUrl" 添加的ID属性-->
<div class="shortcut" id="admin_welcome_openUrl" >
<img class="icon" th:src="@{/zhang/images/icons/adminLogo.png}"/>
<div class="title">管理员中心</div>
</div>
</div>