Thymeleaf 中使用js

1.JS代码中没有使用 Thymeleaf 表达式,仅仅是需要把JS 放在 Thymeleaf 内。

比如在头部加入js

145937_aCjB_2885163.png

只需要加入/*<![CDATA[*/    ......    /*]]>*/代码块,包裹你的JS代码。thymeleaf才能正确解析一些运算符(<等)和操作符号&/&&等。

1)<![CDATA[ 的作用就是把注释的内容当成文本,不解析 。那为什么要写成/*<![CDATA[*/?

a) 首先要知道/*…*/ 的作用

/*…*/中的内容在用浏览器打开静态 网页时,会被忽略.

b)<![CDATA[ 的作用

上面说了,就是把注释的内容当成文本,不解析。(XML 也有)

原因就是:

thymeleaf  中没办法解析js。所以需要加入<![CDATA[ 。 加 /* */  包裹<![CDATA[ 是因为 静态打开时,thymeleaf 没解析 ,直接把内容交给了浏览器 ,浏览器能解析JS.所以这时要让<![CDATA[  失效。正常解析js。

 

2.在javaScript中使用表达式给js变量赋值 转载自

表达式同样可以在javascript中使用。先用属性声明一下:javascript ( th:inline=”javascript” ),然后我们开始在js中声明变量:

<script th:inline="javascript">
/*<![CDATA[*/
    ...
    var username = /*[[${session.user.name}]]*/ 'Sebastian';
    ...
/*]]>*/
</script>

/*[[…]]*/表达式的理解如下:

  • /*…*/中的内容在用浏览器打开静态 网页时,会被忽略.
  • ‘Sebastian’会在浏览器中显示。静态时。
  • Thymeleaf解析时,会解析/*[[…]]*/的内容,并把获得的值替换掉/*[[…]]*/后面的内容。

    所以执行的结果如下:

<script th:inline="javascript">
/*<![CDATA[*/
    ...
    var username = 'John Apricot';
    ...
/*]]>*/
</script>

你也可以不用注释:

<script th:inline="javascript">
/*<![CDATA[*/
    ...
    var username = [[${session.user.name}]];
    ...
/*]]>*/
</script>

这会让它在静态显示时出现错误。 
注意:引擎求值后注入是智能的,它可以智能赋值一下类型的数据。

  • Strings
  • Numbers
  • Booleans
  • Arrays
  • Collections
  • Maps
  • Beans (objects with getter and setter methods) 
    举个栗子:
    script th:inline="javascript">
    /*<![CDATA[*/
    ...
    var user = /*[[${session.user}]]*/ null;
    ...
    /*]]>*/
    </script>

    ${session.user}会获取一个user对象。写入后如下:

    <script th:inline="javascript">
    /*<![CDATA[*/
    ...
    var user = {'age':null,'firstName':'John','lastName':'Apricot',
    'name':'John Apricot','nationality':'Antarctica'};
    ...
    /*]]>*/
    </script>

    引擎同样允许增加和删除代码块,增加代码块:(这有啥用,直接写不行吗?谁知道告诉我一下)

    var x = 23;
    /*[+
    var msg = 'This is a working application';
    +]*/
    var f = function() {
    ...

    解析如下:

    var x = 23;
    var msg = 'This is a working application';
    var f = function() {
    ...

    删除代码块:

    var x = 23;
    /*[- */
    var msg = 'This is a non-working template';
    /* -]*/
    var f = function(){
    ...

    解析如下:

    var x = 23;
    var f = function(){
    ...

     

转载于:https://my.oschina.net/zjllovecode/blog/1574015

Thymeleaf是一个服务器端的Java模板引擎,如果你想在Thymeleaf使用Ajax,可以按照以下步骤进行操作: 1. 引入jQuery库 在你的HTML文件,需要引入jQuery库,因为我们使用jQuery来发送Ajax请求。你可以使用如下代码将jQuery库引入: ```html <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> ``` 2. 编写Ajax请求 在页面添加一个按钮或其他元素,并为其添加一个点击事件。当点击该按钮时,会发送Ajax请求,并将响应数据渲染到页面上。 ```html <button id="btn">点击我发送Ajax请求</button> <div id="result"></div> <script> $(function () { $('#btn').click(function () { $.ajax({ url: '/url', type: 'POST', data: {param1: 'value1', param2: 'value2'}, success: function (data) { $('#result').html(data); } }) }); }); </script> ``` 这里我们使用了jQuery的`ajax`方法,发送了一个POST请求,并将参数传递到服务器。当请求成功时,将响应数据渲染到页面上。 3. 处理Ajax请求 在服务器端,需要处理Ajax请求并返回响应数据。你可以使用Spring MVC或其他框架来处理Ajax请求。 ```java @PostMapping("/url") @ResponseBody public String handleAjaxRequest(@RequestParam String param1, @RequestParam String param2) { // 处理请求 return "响应数据"; } ``` 这里我们使用了Spring MVC的`@PostMapping`注解,表示处理POST请求。使用`@RequestParam`注解来获取请求参数,并使用`@ResponseBody`注解将返回值转换为JSON格式的数据,发送给客户端。 通过以上步骤,你就可以在Thymeleaf使用Ajax了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值