代碼的用途:驗證來自用戶的輸入字符串。如果用戶輸入他的姓名,存儲爲'n',則輸入「James」,然後輸入「Validated!」。被展示。 (單獨的HTML表單負責輸入字符串)爲什麼String.quals()方法在JSTL Core標記<c:if>內工作?
儘管沒有任何錯誤,但標記內的測試失敗,並且不管輸入字符串是否爲「James」,都不顯示消息。
<body>
<% String n = (String)request.getParameter("n");
String t = "James";
%>
Message <!-- Default message displayed to show that HTML body is read. -->
<c:if test="${t.equals(n)}">
<c:out value="Validated!"/>
</c:if>
</body>
如果我與真正的替換花括號內的測試條件,如果條件傳球和消息「驗證」!被展示。
爲什麼equals()
方法不能在JSTL標籤內工作?
爲了比較兩個字符串是否相似,我相信Java中的equals()方法而不是使用==運算符。據我所知,==運算符比較兩個操作數(變量)是否指向同一個對象。我錯了嗎? – 2015-04-05 10:35:25
我認爲eq轉化爲==所以我的問題仍然有效。任何情況下,你能告訴我如何比較兩個字符串在標籤內是否有相同的值? – 2015-04-05 10:59:19
@ user3111418如果我在EL世界中沒有記錯,你假設基本類型不存在(甚至Beans通常使用包裝類型,比如'Integer'而不是原始的'int'來允許* unset *狀態,這是通過使用null) '=='相當於代表'equals'方法的'eq'。 – Pshemo 2015-04-05 11:00:46