I have a question, I need make up the url in the javasctipt. But I don’t known how to put the variable in the th:inline=”javascript” . My code below:
<script th:inline="javascript">
$(function() {
$('#querySubmit').click(querySubmitClickAction);
querySubmit.addEventListener('click', querySubmitClickAction);
function querySubmitClickAction(e) {
var theSize = 10;
var name = $(this).val();
$.ajax({
url: /*
[[@{/registeredUserList(type=0,userName=defaultName,page=0,size=10)}]]*/ 'dummy',
type: 'POST',
success: function (data) {
$(".table_content").html(data);
}
})
}
});
How can I make up the url using the variable in the [[]].
url: /*[[@{/registeredUserList(type=0,userName=name,page=0,size=theSize)}]]*/ 'will show error',
It’s will show error. How can I use the js variable put in the [[]].
Thank you very much.
Advertisement
Answer
You can do it like this:
<script th:inline="javascript">
/*<![CDATA[*/
// JavaScript variable
var theSize = 10;
// URL from Thymeleaf, note the round brackets to avoid that / becomes /
var theUrl = "[(@{/users/})]";
// Create an URL object resolving the relative url
var url = new URL(theUrl, document.location);
// Update the query parameters of the URL with the JavaScript variables
url.searchParams.append("size", theSize);
console.log(url);
/*]]>*/
</script>
In the JavaScript console, this prints:
http://localhost:3000/users/?size=10