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

时间:2015-08-13 15:04:19

标签: java jquery jsp

我有一个关于在JSP中使用Ternary Operator的查询。下面提到的代码使用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>

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

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>

以上代码基本上检查TestPerformed是Y还是N.如果是Y,则检查Checkbox,否则将取消选中。 Jquery用于将HiddenTestPerformed输入的值更改为Y或N.

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

先谢谢。

1 个答案:

答案 0 :(得分:3)

你只是在scriplet中缺少一个等号,还有一些你需要在整个表达式中插入(括号)而不是以;

结尾

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

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