在js中如果想使用Thymeleaf,必须要在<script>中加入th:inline="javascript"属性值表示可以使用内联 js ,即可以在 js 代码中使用 [[]] 取值,否则报错。
即能够可靠的实现:
<script type="text/javascript" th:inline="javascript"></script>
实现方法1:
<script type="text/javascript" th:inline="javascript">
/*<![CDATA[*/
var basePath =
[[${#httpServletRequest.getScheme() +
"://" +
#httpServletRequest.getServerName() +
":" +
#httpServletRequest.getServerPort() +
#httpServletRequest.getContextPath()}]];
$(document).ready(function () {
$.ajax({
type: 'post',
dataType: 'text',
url: basePath + '/index/ajaxtest',
data: {},
cache: false,
async: true,
success: function (data) {
var data = eval('(' + data + ')');
$('#idUser').text(data.name);
$('#idMsg').text(data.msg);
}
});
});
/*]]>*/
</script>
实现方法2:
使用 url:[[@{/index/ajaxtest}]]这样就可以,不用那样获取basePath。
试用这种方法编译器可能会报错,但是可以忽略此错误,直接运行即可。
本文介绍了如何在JavaScript中使用Thymeleaf的内联模式,并提供了两种实现方式:一种通过动态获取baseURL进行AJAX请求,另一种直接使用模板表达式。注意可能遇到的编译器错误及其解决方案。
21万+

被折叠的 条评论
为什么被折叠?



