jstl el js灵活使用(三种方案处理页面逻辑)

2016-11-07  本文已影响628人  seemoonup

场景描述:根据后台传入的值(value是否大于0)决定是否跳转(跳转地址vid-*)
备注:*为后台传入的value


.解决方案:
第一种方案:jstl
使用

<c:choose> <c:when test="${value > 0}"> <a href="vid-${value}" class="photo" target="_blank"> href </a></c:when> <c:otherwise> <a href="javascript:void(0);" class="photo" target="_blank"> href </c:otherwise> </c:choose>

使用jstl表达式来完成


第二种方案:el表达式+三目运算符

很显然使用第一种方式代码很臃肿,代码量太高
所以考虑能否使用el表达式中的三目运算符来解决这个问题
代码如下

<a href="${value > 0 ? 'vid-'+value : ''}; "

发现会报错 原因是三目运算符中不支持字符串的加减,只支持数字间的逻辑运算
这样就比较尴尬了;


第三种方案:将逻辑转移到js文件当中 将videoId传入js中进行处理判断

js代码如下
function redirectUrl(value){ if(value > 0) { window.location.href = "vid-"+value; } }
jsp代码如下
<a href="javascript:redirectUrl(${ value}); "

使用这种方案就解决了第二种方法不能够处理的问题

总结:有时候思路转变一下 就会得到一种比较合理的解决方案

上一篇下一篇

猜你喜欢

热点阅读