三元运算符未按预期工作

时间:2019-08-01 16:19:23

标签: javascript java jquery servlets jstl

在我的代码中,我通过language设置了一个名为JSTL的变量。这就是我的方法。

<%@ page pageEncoding="UTF-8" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@taglib prefix="c" uri= "http://java.sun.com/jsp/jstl/core" %>
<c:set var="language" value="${not empty param.language ? param.language : not empty language ? language : pageContext.request.locale}" scope="session" />
<fmt:setLocale value="${language}" />
<fmt:setBundle basename="text" />

我有一个JQuery代码,它将检查language并相应显示内容。

<script >
    $(function() {
        $('#SelecttheCategory').on('change', function() {
            alert("${language}");
            val = $(this).val();

            $.get("DynamicPopProductList?categoryID=" + val, function(responseJson) {

                var $dropdown = $("#Selecttheproducts");
                $dropdown.empty();

                $.each(responseJson, function(index, item) {
                    $dropdown.append($("<option />").val(item.idproduct).text($ {
                        language
                    } == 'si' ? item.sinhalaName : item.productName));
                });

            });
        });
    }); 
</script>

如果语言是sinhala,我需要显示item.sinhalaName,如果不是,则显示item.productName。无论如何,这不能按预期工作。我什么都没有。但是在我的alert中,它正确地将language显示为si

我该如何解决?

1 个答案:

答案 0 :(得分:2)

假设n值输出到服务器端的源,那么您需要将其包装在引号中,以使Javascript语法正常工作。试试这个:

${language}