el和jstl表达式问题==0的问题

Posted renjianjun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了el和jstl表达式问题==0的问题相关的知识,希望对你有一定的参考价值。

 出现问题的地方
<c:if test="${paramMap[‘_query.issend‘]==‘0‘}"> selected="selected" </c:if>

后台默认会把name="_query.issend"中的 _query.issend作为key保存到作用域中,然后返回的时候作为回显使用。
第一次点击查询的时候,数据正常,我们的这里选择的是没有只的第一个option,
点击一次查询后,这里的备选项就会变了,变成第二个了,也就是 value="0" 的这个选项,我们什么都没有操作。只是点击查询
不知道为什么,

猜测:可能是我们系的if语句中 paramMap[‘_query.issend‘] 这个第一次就是空值 "", 我们这里等于的时候使用的是 ==0 他给认为是 "" 就是0 了, 不知道对不对? 完全猜测。
${paramMap[‘_query.issend‘]==0}
所以可能认为这个就是 true 了,就会改变备选项了。


解决方式: 把 ==0 这样的方式改为 ==‘0‘ 改为等于字符串的形式,这样,我测试的结果就没有问题了。
原来的样式:
               <div class="report-update-list-search">
                            <label>${_res.get("admin.dict.property.status")}:${paramMap[‘_query.issend‘]}</label>
                            <select id="" name="_query.issend" class="chosen-select" style="width:120px">
                                <option value="" >${_res.get(‘system.alloptions‘)}</option>
                                <option value="0" <c:if test="${paramMap[‘_query.issend‘]==0}"> selected="selected" </c:if>>${_res.get(‘Unsent‘)}</option>
                                <option value="1" <c:if test="${paramMap[‘_query.issend‘]==1}"> selected="selected" </c:if> >${_res.get(‘Has_been_sent‘)}</option>
                                <option value="2" <c:if test="${paramMap[‘_query.issend‘]==2}"> selected="selected" </c:if>>${_res.get(‘Is_the_translation‘)}</option>
                            </select>
                        </div>

改变后结果显示没有问题的样式

               <div class="report-update-list-search">
                            <label>${_res.get("admin.dict.property.status")}:${paramMap[‘_query.issend‘]}</label>
                            <select id="" name="_query.issend" class="chosen-select" style="width:120px">
                                <option value="" >${_res.get(‘system.alloptions‘)}</option>
                                <option value="0" <c:if test="${paramMap[‘_query.issend‘]==‘0‘}"> selected="selected" </c:if>>${_res.get(‘Unsent‘)}</option>
                                <option value="1" <c:if test="${paramMap[‘_query.issend‘]==‘1‘}"> selected="selected" </c:if> >${_res.get(‘Has_been_sent‘)}</option>
                                <option value="2" <c:if test="${paramMap[‘_query.issend‘]==‘2‘}"> selected="selected" </c:if>>${_res.get(‘Is_the_translation‘)}</option>
                            </select>
                        </div>

 



               

 

以上是关于el和jstl表达式问题==0的问题的主要内容,如果未能解决你的问题,请参考以下文章

EL表达式

EL和JSTL

jsp中的EL表达式

JSP中的JSTL与EL表达式用法及区别

EL表达式和JSTL——EL表达式

JSTL不同版本和EL表达式的关联