2015-08-13 94 views
2

我有關於在JSP中使用三元運算符的查詢。下面提到的代碼使用if語句,它工作正常。如何在JSP中使用三元運算符

<% 
       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時,該複選框將被選中否則,將取消選中。 Jquery用於將HiddenTestPerformed輸入的值更改爲Y或N.

請幫助我解決問題如何使用此三元運算符來滿足此要求。

在此先感謝。

+1

我結束認爲你想要:'<%=「Y」.equals(TestPerformed)? 「checked」:「」%>'不是'<%「Y」.equals(TestPerformed)? 「checked」:「」;%>' – brso05

回答

2

你只是缺少在scriplet等號,你也有一些需要如何插入(括號內)的整個表達式,你不要用;

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

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

感謝JoyBlanks。它真的有效。非常感謝你 – InkTekSol