如何使用jQuery在Thymeleaf中获取HttpServletRequest属性?

时间:2018-09-06 18:29:59

标签: jquery spring spring-mvc spring-boot thymeleaf

我的代码在这里:

<script type="text/javascript">
    /*<![CDATA[*/
    //var rootpath=[[${httpServletRequest.getContextPath()}]];
    //var rootpath = [[${rootPath}]];;
    var rootpath=$("#rootpath").val();
    //alert(rootpath);
    var tale = new $.tale();
    function checkForm() {
        tale.post({
            url: rootpath+'/admin/login',
            data: $("#loginForm").serialize(),
            success: function (result) {
                if (result && result.success) {
                    window.location.href = rootpath+'/admin/index';
                } else {
                    tale.alertError(result.msg || '登录失败');
                }
            }
        });
        return false;
    }
    /*]]>*/
</script>

我可以在HTML中使用隐藏标记来存储值,

<input type="hidden" id="rootpath" th:value="${#httpServletRequest.getContextPath()}" />

最近通过

获取
var rootpath=$("#rootpath").val();

但是还不够。

如何直接获取请求值?

1 个答案:

答案 0 :(得分:1)

在最新的Thymeleaf上,这对我有用:

<script type="text/javascript" th:inline="javascript">
    /*<![CDATA[*/
    var tale = new $.tale();
    function checkForm() {
        tale.post({
            url: /*[[@{/admin/login}]]*/ '',
            data: $("#loginForm").serialize(),
            success: function (result) {
                if (result && result.success) {
                    window.location.href = /*[[@{/admin/index}]]*/ '';
                } else {
                    tale.alertError(result.msg || '登录失败');
                }
            }
        });
        return false;
    }
    /*]]>*/
</script>

您不需要使用#httpServletRequest来获取上下文路径,只需使用Thymeleaf的标准url语法即可。