关于数据库取值与三元运算符的问题

这是数据库的一张表
图片说明
里面的“DetectID”是存的字符串类型,现在在jsp页面上读取出来想把数字换成名称,所以运用三元运算符写了
“<%=ato.getDetectID()=="0"?"管理员":ato.getDetectID()=="1"?"AIS,":
ato.getDetectID()=="2"?"雷达应答器,":ato.getDetectID()=="3"?"示位标,":”(部分代码)然而在网页运行时呈现
图片说明
能帮忙看看我代码哪里出了问题吗?

或者不用三元运算符,还有没有其他的办法能把读取到的数字转换成文字?

个人比较喜欢用js前端处理,给个示例给你参考 td用role自定义属性存储detectID值

 <td role="<%=ato.getDetectID()%>"></td>

然后脚本放最后初始化数字对应的权限名称



<script>
    var kvRole = { 0: '管理员', 1: 'AIS', 2: '雷达应答器', 3: '示位标'/*更加多数字对应的权限键值对*/ }
    function getRoleStr(v) {
        var s = '';
        var arr = v.split(',');
        for (var i = 0; i < arr.length; i++) s += ',' + kvRole[arr[i]];
        return s.substring(1);
    }

    var roles = document.querySelectorAll('td[role]');//获取所有权限td
    for (var i = 0; i < roles.length; i++) roles[i].innerHTML = getRoleStr(roles[i].getAttribute('role'));

</script>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


太惨了。
/c:when
/c:when

什么都没有。
/c:otherwise
/c:choose

忽略上面。被CSDN转义了。

 <c:choose>
    <c:when test="${salary <= 0}">
       太惨了。
    </c:when>
    <c:when test="${salary > 1000}">
       不错的薪水,还能生活。
    </c:when>
    <c:otherwise>
        什么都没有。
    </c:otherwise>
</c:choose>

ato.getDetectID().indexOf("1")
ato.getDetectID().indexOf("2")
ato.getDetectID().indexOf("3")

就像你上面写的是JAVA脚本,字符串比较不能用==,应该用Stirng.equals()来比较;尽量用多学一些JSP的JSTL标签库。