如何在JSP中使用三元运算符

Ink*_*Sol 5 java jquery jsp

我有一个关于在 JSP 中使用三元运算符的查询。下面提到的代码使用 if else 语句,效果很好。

<%
                if ("Y".equals(TestPerformed)) {%>
            Test Performed <input type="checkbox" id="TestPerformed<%=RowCount%>" name="TestPerformed" value="Y" checked>
            <%} else {%>
            Test Performed <input type="checkbox" id="TestPerformed<%=RowCount%>" name="TestPerformed" >
            <%}%>
            <input type="text" id="HiddenTestPerformed<%=RowCount%>" name="TestPerformed" value="<%=TestPerformed%>"/>
            <script>
                $(function () {
                    $("#TestPerformed<%=RowCount%>").change(function () {
                        $("#HiddenTestPerformed<%=RowCount%>").val(($(this).is(':checked')) ? "Y" : "N");
                    });
                });
            </script>
Run Code Online (Sandbox Code Playgroud)

但是当我使用三元运算符时,它会给我一个编译时错误,指出不是语句。

Test Performed <input type="checkbox" id="TestPerformed<%=RowCount%>" name="TestPerformed" value="Y" <%"Y".equals(TestPerformed) ? "checked":"";%>>
            <input type="text" id="HiddenTestPerformed<%=RowCount%>" name="TestPerformed" value="<%=TestPerformed%>"/>
            <script>
                $(function () {
                    $("#TestPerformed<%=RowCount%>").change(function () {
                        $("#HiddenTestPerformed<%=RowCount%>").val(($(this).is(':checked')) ? "Y" : "N");
                    });
                });
            </script>
Run Code Online (Sandbox Code Playgroud)

上面的代码主要检查 TestPerformed 是 Y 还是 N。如果是 Y,则复选框将被选中,否则将被取消选中。Jquery 用于将 HiddenTestPerformed 输入的值更改为 Y 或 N。

请帮助我,如如何使用此三元运算符来满足此要求。

提前致谢。

joy*_*nks 6

你只是在脚本中缺少一个等号,还有一些你需要如何插入(括号)整个表达式并且你不以;

最后<%= ( <expression> ? <then_String> : <else_String> ) %>

<input type="checkbox" id="TestPerformed<%=RowCount%>" name="TestPerformed" value="Y" <%=("Y".equals(TestPerformed) ? "checked":"")%> >
Run Code Online (Sandbox Code Playgroud)