繁体   English   中英

在Java Spring Boot中,如何使用thymeleaf将表单动作作为函数传递,如何将表单动作作为函数进行解析

[英]In java spring boot how to pass form action as a function using thymeleaf, ,How to parse form action as a function

在我的spring boot应用程序中,我需要提交一个表单,并且form动作应该是一个函数。 这是我尝试的代码:

提交表单的html代码:

<form role="form" id="form_id" data-parsley-validate="" novalidate=""
                        class="mb-lg" th:action="get_action()" method="get">

javascript函数:

function get_action(){
    $("#form_id").attr("action"); //Will retrieve it

    $("#form_id").attr("action", "@{/changePassword1}"); //Will set it

}

这是我得到的错误“发生了意外错误(类型=内部服务器错误,状态= 500)。无法解析为表达式:“ get_action()”(管理员:55)“

我应该如何解决这个问题,以便我可以将表单操作作为函数传递?

您搞砸了,thymeleaf在服务器端渲染视图,而javascript在客户端执行,th:action期望得到一些表情表达式(eq @ {/ changePassword1})。

如果要使用javascript更改操作网址,则需要将此脚本放置在底部标签中的html文件中,以便百里香叶可以呈现您的百里香叶变量。

您需要在某个地方调用您的javascript url更改,我不知道是什么原因(您未指定)url更改,所以我想可以在页面加载后调用它(eq jQuery $(document).ready() )或由某些事件引起(单击按钮)

编辑

     <form role="form" id="form_id" data-parsley-validate="" novalidate=""
                            class="mb-lg" th:action="@{/changePassword}" method="get">

和您修改的示例js

<script>
$(function(){
    function get_action(){
       //Will retrieve it
       console.log("form action url:" + $("#form_id").attr("action")); 

       $("#form_id").attr("action", "@{/changePassword1}"); //Will set it

    }

    get_action();
});
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM