2014-05-18 16 views
12

Tôi đang cố thử nghiệm trong JSTL nếu thuộc tính phiên trống. Tuy nhiên, thuộc tính là JSTL rỗng thấy nó là một thuộc tính không trống.JSTL: kiểm tra xem chuỗi có trống không

Đây là mã cứng tôi đang cố gắng thay thế bằng JSTL. Mã này đang hoạt động chính xác:

<% if (request.getAttribute("error") != null) { %> 
    <div class="alert alert-danger"> 
     <strong>Oh snap, something's wrong, maybe the following error could help you out?<br /></strong> 
     <%= request.getAttribute("error")%> 
    </div> 
<% } %> 

Đây là cách tôi đã thay thế bằng JSTL. Khi được chọn, thuộc tính lỗi không trống, tuy nhiên nó không có.

<c:if test="${not empty sessionScope.error}"> 
    <div class="alert alert-danger"> 
     <strong>Oh snap, something's wrong, maybe the following error could help you out?<br /></strong> 
     <c:out value="${sessionScope.error}" /> 
    </div> 
</c:if> 
+0

bạn đã thêm vào thư viện JSTL – gyanu

+2

Bạn đã nhập thẻ JSTL trong trang ** <% @ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%> ** – gyanu

+0

Đó thực sự là vấn đề. Tôi đã khắc phục sự cố này trong hơn một giờ. Cảm ơn :) – DaanCelie

Trả lời

13

Thêm thư viện JSTL và khai báo taglib lõi:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 

Các JSTL tương đương với

<% if (request.getAttribute("error") != null) { %> 

<c:if test="${not empty error}"> 
+0

OP đang hoạt động theo cách tương tự. – Braj

+0

Đã cố gắng xóa yêu cầuScope, nhưng vấn đề tương tự vẫn tồn tại. – DaanCelie

1

Tôi đang cố gắng để kiểm tra trong JSTL nếu một session attribute trống

Bạn phải kiểm tra trong phạm vi phiên không yêu cầu phạm vi.

Nó phải là

<c:if test="${not empty sessionScope.error}"> 

thay vì

<c:if test="${not empty requestScope.error}"> 

Nếu bạn không chắc chắn về phạm vi sau đó sử dụng mà không cần phạm vi đó sẽ tìm trong tất cả các phạm vi từ dưới lên trên (trang , yêu cầu, phiên sau đó cuối cùng cũng được áp dụng)

<c:if test="${not empty error}"> 
+0

Đã thay đổi, vấn đề tương tự vẫn tồn tại. Tôi cũng đã cố gắng loại bỏ phạm vi, không hoạt động. Tôi hoàn toàn chắc chắn thuộc tính trống vì tôi đã để mã cũ hoạt động và mã đó không tạo ra bất kỳ thứ gì. – DaanCelie

+0

Xem bài đăng đã chỉnh sửa của tôi. Chia sẻ mã nơi bạn đặt thuộc tính. Có thể là 'error' không phải là tên thuộc tính chính xác. – Braj

+1

'$ {không trống rỗng}' và '$ {không trống rỗng" "}' return 'false'. – Braj

Các vấn đề liên quan