双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

thymeleaf在js中使用问题

平安一生0708 平安一生0708 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
初学thymeleaf,在js中使用时遇到些问题。
发现在js中使用var name = [[${user.username}]];在浏览器会报错
可能是把中括号解析成数组了
在网上查了下,看到这种做法,

测试了之后发现,只要有这个<script th:inline="javascript">就可以正常解析var name = [[${user.username}]];替换与否不影响,特殊需求除外,但是,有个前提:js代码必须写在html里,不能写在js文件中外联
下面是真正的问题:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<meta charset="UTF-8" />
<title>demo--index</title>
<link th:href="@{css/myCss.css}" type="text/css" rel="stylesheet"/>
<script type="text/javascript" th:src="@{js/jquery-3.2.1/jquery.js}"></script>
<!--<script th:inline="javascript" th:src="@{js/index.js}" type="text/javascript"></script>-->
<script th:inline="javascript" type="text/javascript">
$(function (){
// var name = /*[[${user.username}]]*/null;
var name = [[${user.username}]];
console.info("name="+name);
console.info(name==undefined||name==null||name=="");

if(name==undefined||name==null||name==""){
console.info("修改前:"+$("#msg").html());
$("#msg").html("您还没有登陆,请点击<a href='/'>登陆</a>");
console.info("修改后:"+$("#msg").html());
}

$("#msg").show();
});
</script>
</head>
<body>

<div id="msg" hidden="hidden">
My first springBoot project<br/>
恭喜<span th:text="${user.username}" class="span" id="username"></span>,登录成功
</div>
</body>
</html>

下面是浏览器解析后的js代码部分:

结果如图:

js中 $("#msg").html("您还没有登陆,请点击<a href='/'>登陆</a>");并没有替换掉html代码,而是清空了
js是jquery3.2.1版本
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
平安一生0708
Web 开发 81,108 成员 341,721 内容