我有一个关于在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.
请帮助我,如何如何使用此三元运算符来满足此要求。
先谢谢。
答案 0 :(得分:3)
你只是在scriplet中缺少一个等号,还有一些你需要在整个表达式中插入(括号)而不是以;
最后<%= ( <expression> ? <then_String> : <else_String> ) %>
<input type="checkbox" id="TestPerformed<%=RowCount%>" name="TestPerformed" value="Y" <%=("Y".equals(TestPerformed) ? "checked":"")%> >