EL表达式取值问题 ${??}

很多时候页面传值,习惯用EL表达式来解决,快捷方便,但是EL表达式有时候是有局限性的,例如你传的值,如果接口分多处调用,有的是传值的,而有的直接为空,那么你传递的值也就不存在了,此时在页面用EL表达式来取值的时候,就会报出页面错误。

EL表达式取值问题 ${??}_第1张图片

此处的案例是工作中用到的一个跳转页面。初次访问时是不需传值的。而有重新发起交接要求时共用此跳转去相同的页面,那么两处调用会有值是否存在的问题。刚开始还我都是直接model全部塞进去传递,发现页面取值的时候,它不存在,ajax无法接着往下执行,所以将几个值做了处理。

因为assetIds是一个以逗号隔开数据的字符串,页面需要的时候其分割后的数组对象,所以此处以if-else判断,哪怕数组为空也要传入,不然页面无法取值。而后面两个参数则不需要如此处理,是可以直接通过Model传递的。

字符串以数组传递时碰到了一个问题,数组是无法在页面上获得长度的(我暂时是没找到获取方法,有小伙伴知道的留言告知一下,谢谢。除了JSTL标签转换。。),所以再进行了一次转换List的处理,这样jsp中通过list.length就可以得到长度了。

EL表达式取值问题 ${??}_第2张图片

注意:jsp传值时都很容易,需要用到传递值的长度等属性时需要注意。

上述案例可以直接传string,然后在jsp用split分割,再封装成数组。处理结果是一样的

你可能感兴趣的:(web前端)