后台传递java对象给前台和jsp作用域里面的值作为onclick的参数

后台传递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方法之后的字符串。

 

Guess you like

Origin blog.csdn.net/imonkeyi/article/details/104877802