model.addAttribute后在js中怎么直接使用
时间: 2024-03-13 09:45:04 浏览: 159
在Java的Spring MVC框架中,controller中通过使用model.addAttribute可以将数据传递到前端页面,但是在js中无法直接访问该数据,因为js是在前端页面中执行的。如果希望在js中直接使用model.addAttribute传递的数据,可以使用以下两种方法:
1. 在前端页面中使用Thymeleaf将model.addAttribute的值赋值给js定义的变量,例如:
```
<script th:inline="javascript">
var myValue = /*[[${myValue}]]*/ '';
</script>
```
这样就可以在js中直接使用myValue变量了。
2. 将model.addAttribute的值存储在前端页面的某个元素中,例如:
```
<div id="myValue" th:text="${myValue}" style="display:none;"></div>
```
然后在js中获取该元素的值,例如:
```
var myValue = document.getElementById("myValue").innerHTML;
```
这样也可以在js中直接使用model.addAttribute传递的数据了。需要注意的是,在使用这种方法时,需要保证存储数据的元素在js代码执行之前已经被渲染到页面中,否则会获取不到该元素的值。
相关问题
model.addAttribute后在js中怎么调用
在js中调用model.addAttribute的值,需要将值先存储在HTML页面的某个元素中,然后再通过js获取该元素的值。具体步骤如下:
1. 在HTML页面中,使用Thymeleaf将model.addAttribute的值存储在某个元素中,例如:
```
<div id="myValue" th:text="${myValue}"></div>
```
2. 在js中,获取该元素的值,例如:
```
var myValue = document.getElementById("myValue").innerHTML;
```
这样就可以在js中调用model.addAttribute的值了。需要注意的是,如果model.addAttribute的值是一个对象或数组,需要先将其转换为JSON格式,然后再存储在HTML页面的某个元素中,例如:
```
<script th:inline="javascript">
var myObject = /*[[ ${#jsonStringify(myObject)} ]]*/ '{}';
</script>
<div id="myObject" th:text="${#jsonStringify(myObject)}"></div>
```
然后在js中获取该元素的值,再将其转换为对象或数组,例如:
```
var myObjectJson = document.getElementById("myObject").innerHTML;
var myObject = JSON.parse(myObjectJson);
```
model.addAttribute后,在js怎么获取
在JS中可以通过以下方式获取model中添加的属性:
1. 使用JSP EL表达式
如果在JSP页面中使用了EL表达式,那么在JS中可以使用相同的语法获取model中的属性,例如:
```javascript
var myVar = "${myModelAttr}";
```
2. 使用jQuery
如果在页面中引入了jQuery库,那么可以使用以下方式获取model中的属性:
```javascript
var myVar = $.trim($("#myModelAttr").text());
```
其中,myModelAttr是model中添加的属性名称,可以在JSP页面中使用以下语法将属性值添加到HTML元素中:
```html
<div id="myModelAttr" style="display:none;">${myModelAttr}</div>
```
3. 使用AJAX
如果需要在JS中异步获取model中的属性,可以使用AJAX请求,例如:
```javascript
$.ajax({
url: "/myController/myAction",
type: "POST",
dataType: "json",
success: function(data) {
var myVar = data.myModelAttr;
// do something with myVar
}
});
```
其中,myController是controller的名称,myAction是请求的方法名,返回的data是一个JSON对象,包含了model中添加的属性。
阅读全文