您的位置:首页 > 其它

记录自己愚蠢的一次经历

2017-08-07 15:40 218 查看

问题描述

表单提交前需要对参数进行校验,并且需要使用Ajax提交表单,Ajax需要传输一个保存的session作用域中的值,百度后得知EL表达式是可以直接在内嵌式JavaScript脚本中直接使用的,所以在组装参数时直接使用EL表达式获取值,但是最后提示js函数未定义。

愚蠢的json拼装

data = {"id":${appDevices.id}};


调试

从始至终我都没想过问题出在json格式的组装上面,通过一步步的调试将问题定为到上述的一句话后,我猜想可能是此处不能使用EL表达式的原因,后来换种方式获取值便成功了。

原因

正常的json格式应该是
{"id":"id"}
这样的,但是上述语句执行完成后会变成
{"id":${xxxxx}}
这样,对比两种格式很明显地发现了问题,后面的${xxxxx}并不是一个串或者数字,则不能算是json格式的数据

于是js在执行到这句话时出错了,到时该语句所在的js函数为初始化完成,于是便报了开头所说的js函数未定义的问题。

解决方案

1.可以使用其他的方式获取值,比如使用隐藏表单域

2.将
{"id":${xxxxx}}
改成
{"id":"${xxxxx}"}


反省

最后发现问题的时候被同事各种嘲讽,谨以此文记录自己所犯的愚蠢之极的问题,告诫自己下次不要在犯。

ps:如果看文的亲也和我一样,请记住,对自己下手轻一点,不说了,我先去上点药了啊
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  愚蠢