后台传递java对象给前台
使用JSONObject对象,要导入包,在网上json有很多中,我用的是org.json包,Maven引入
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20190722</version>
</dependency>
JSONObject的一个构造函数可以将javaBean转换为json对象
//构造函数
JSONOject jsonObject = new JSONObject(Object obj);
//toString() 转换成json字符串就可以以字符串的形式传递到前台
//好像可以直接传递json对象
String str = jsonObject.toString();
//前台再将json字符串转换成json对象就可以获取其中的值了
<script>
function fn(){
//jquery封装的post方法
$.post("url", {}, function(data){
var obj = JSON.parse(data);
})
}
</script>
jsp作用域里面的值作为onclick的参数
使用jstl获取session中的值作为onclick()的参数
//假设session中有一个对象User
class User {
private int id = 1;
private String name = "jstl";
private User user ;
}
//jstl全名加Java server pages standarded tag library,它运行再服务器端,在服务器端会解析所有的jstl标签,将它代表的值填入到html中的相应位置
比如
<a href="#" onclick="back(${User.id })"></a>
解析之后
<a href="#" onclick="back(1)"></a>
这时html可以识别并把数字1传递给函数
如果
<a href="#" onclick="back(${User.jstl })"></a>
解析之后
<a href="#" onclick="back(jstl)"></a>
html会把jstl当成一个变量,然而并没有声明名为jstl的变量,所以会报undefined
当传递的时字符串时可以在加单引号
如果是对象,解析之后是该对象调用toString方法之后的字符串。