【js零散知识点】

1、js中遍历对象用$.each()。

方法中有2个参数:

第1个参数:要迭代的对象,是Map集合的key值,Map集合的key值对应的value值比如是一个List集合,集合存储的比如是一个个User对象

第2个参数:function(),function()接收2个参数:

第1个参数:迭代对象的索引

第2个参数:是一个形参,名称随便给。迭代对象一般是什么起什么,见名知意即可

例:

//userList是要迭代的对象,是Map集合的key值,对应的value值需要是一个List集合
$.each(data.userList, function(index, u){
    
})

如果要把遍历出来的一个个对象中的某些成员变量需要追加到select下拉框中(select复选框追加的则是一个个option选项),如下:

var userName = $("#toCompName").empty() //先要将下拉框清空,toCompName是select标签的属性id的值,赋值给userName变量  
$.each(data.userList, function(index, u){
    //此时的select复选框的名称是赋值给userName变量的名称,追加用append(),追加一个个option选项,option标签的value值是真值,另一个则是显示值,真值与显示值的u.name,u是function()的第二个参数名称,name是userList对应的value值,value值比如是一个List集合,集合存储的比如是一个个User对象,User对象有成员变量name,也就是这个name是根据Map集合的value值集合存放的是什么对象,真值和显示值是对象的成员变量  
    userName.append("<option value='" +u.name+ "'>" +u.name+ "</option>")
})

2、用ID选择器分别获取文本框的值和下拉框的值

获取文本框的值:$("#id属性值").val();

//例:获取id属性值为toCompDept文本框的值
$("#toCompDept").val();

获取下拉框的值:$("#id属性值 option:selected").val();

//例:获取id属性值为toCompDept下拉框的值
$("#toCompDept option:selected").val();

清除下拉框文本框的值:$("#属性值").empty();

//例:清除id属性值为toCompDept文本框的值
$("#toCompDept").empty();

3、innerText和innerHTML的区别
innerText:往一对“标签”设置文本内容
innerHTML:可以获取或修改某个HTML标签内包含的内容

4、返回一个json字符串

方式1:没有框架的情况下(直接用输出流输出json格式字符串)

控制层方法返回的数据类型为void。将整个查询出来的对象变成一个个json对象,步骤如下

step1、需要引入3个jar包:

commons-beanutils-1.8.0.jar、ezmorph-1.0.6.jar、json-lib-2.3-jdk15.jar

step2、创建json对象,导包的时候导入的是net.sf.json.JSONObject

JSONObject json = new JSONObject();
json.put("msg", "success");
json.accumulate("userList", userService.findObjects(queryHelper));    //第二个参数userList是查询出来的对象。查询出来的对象转成一个个json对象

step3、输出查询出来的列表对象,以json格式字符串形式输出

HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html");
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(json.toString().getBytes("utf-8"));
outputStream.close();

方式2:有框架的情况下(使用的是struts2,使用插件包将控制层中对应的对象自动生成json格式字符串)

控制层方法返回值类型为String。

step1、引入struts2与json的插件包:

struts2-json-plugin-2.3.20.jar

setp2、返回json对象

成员位置定义一个变量,变量的数据类型为Map<String, Object>,并生成该变量的get(),不需要set();

然后在要返回json格式的方法中实例化刚刚定义的map集合;

给map集合放值。用刚定义的变量名称.put(),put()参数类型为(String key, Object value)。标识一下是否成功,页面可以选择去用;然后再用刚定义的变量名称.put(),put()参数类型为(String key, Object value),第一个参数key值表示的是要传给jsp页面要遍历的对象的名称,第二个参数是要查询的对象,与方式1的accumulate()的意思其实是一样的。

//例:返回json对象
return_map = new HashMap<String, Object>();                        //实例化
return_map.put("msg", "success");                                    
return_map.put("userList", userService.findObjects(queryHelper));  //第二个参数是要查询的对象。视图页面要迭代的数据集合

step3、struts配置文件中的package元素extends属性值除了struts-default,还要json-default,这两个逗号隔开即可。

result元素只需要配置type属性,type属性值为json,容器就会把action中的属性自动封装到一个json对象中返回json数据;因为action中方法return的是SUCCESS,所以result元素的name属性默认值就是success。

result元素的子元素param元素的name属性值指定为root,param元素的值就是在控制层定义数据类型为Map<String, Object>的变量名称。

*如果param元素的值没有显示指定Map属性,也就是Map<String, Object>的变量名称,则struts会将action中所有以get开头的方法的返回值都会自动生成json字符串返回给浏览器了,所以param元素的配置意思是:指定变量对应的get开头方法的返回值自动转成json格式字符串

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值