ios怎么向后台传送布尔类型参数
答案:2 悬赏:80 手机版
解决时间 2021-02-18 13:42
- 提问者网友:情歌越听越心酸
- 2021-02-17 12:43
ios怎么向后台传送布尔类型参数
最佳答案
- 五星知识达人网友:深街酒徒
- 2021-02-17 12:50
unction parseData(obj){
if(obj.value=='1'){
obj.value='0';
}else{
obj.value='1';
}
}
前端数据传递:var isPublic=$("input[name='isPublic']").val();
后台数据源类型:private Boolean isPublic;
后台接收数据类型:不管前端的值传递的值是0还是1,isPublic的值都为false。
错误原因:前端将数据传递到后台都是这种格式/device/addDevice?isPublic=0,
而且传递的参数不管在前端是什么类型,在http请求中的数据都是字符串类型,所以java后台是将字符串isPublic的值转化为布尔型,但在java中String转化为boolean型的规则为:
除忽略大小写的true字符串的布尔转化值为true外,其它的都为false。所以前端传输数据0或者1,解析后的结果都为false。
解决办法:
前端数据显示:
function parseData(obj){
if(obj.value=='1'){
obj.value='';
}else{
obj.value='1';
}
}
前端数据传递:var isPublic=Boolean($("input[name='isPublic']").val());
解决原理:在javascript中所有的字符串除了""即空字符外,其它字符串均为true,所以多选框未点击时值为"",转化为布尔值为false,传递http请求时为"false",后台解析也为false;同理多选框点击时值为"1",转化为布尔值为true,传递http请求时虽为"true",但后台解析后就会变为true。
if(obj.value=='1'){
obj.value='0';
}else{
obj.value='1';
}
}
前端数据传递:var isPublic=$("input[name='isPublic']").val();
后台数据源类型:private Boolean isPublic;
后台接收数据类型:不管前端的值传递的值是0还是1,isPublic的值都为false。
错误原因:前端将数据传递到后台都是这种格式/device/addDevice?isPublic=0,
而且传递的参数不管在前端是什么类型,在http请求中的数据都是字符串类型,所以java后台是将字符串isPublic的值转化为布尔型,但在java中String转化为boolean型的规则为:
除忽略大小写的true字符串的布尔转化值为true外,其它的都为false。所以前端传输数据0或者1,解析后的结果都为false。
解决办法:
前端数据显示:
function parseData(obj){
if(obj.value=='1'){
obj.value='';
}else{
obj.value='1';
}
}
前端数据传递:var isPublic=Boolean($("input[name='isPublic']").val());
解决原理:在javascript中所有的字符串除了""即空字符外,其它字符串均为true,所以多选框未点击时值为"",转化为布尔值为false,传递http请求时为"false",后台解析也为false;同理多选框点击时值为"1",转化为布尔值为true,传递http请求时虽为"true",但后台解析后就会变为true。
全部回答
- 1楼网友:玩世
- 2021-02-17 14:01
我。。知。。道
加。。我。。私。。聊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯