2011-01-19 41 views
8

Tôi đang cố hiển thị thuộc tính phiên "userSession" trong trang jsp bằng cách sử dụng JSP EL, nhưng nó trả về null (trường hợp 1). Các thuộc tính yêu cầu được hiển thị đúng trong biểu thức EL.Vấn đề với thuộc tính phiên trong JSP EL sử dụng Spring MVC

Sử dụng java scriptlet thay vào đó, cư xử như thể hiện trong trường hợp 2 và 3:

  1. <c:out value="${userSession}"/> \\ Trả rỗng
  2. <c:out value='<%=request.getSession().getAttribute("userSession")%>'/> \\ Hoạt động tốt - trả về thuộc tính phiên
  3. <c:out value='<%=session.getAttribute("userSession")%>'/> \\ Ném ngoại lệ: không thể tìm thấy phiên biến

Trường hợp ngoại lệ 3 có thể là relat đối với trường hợp 1 vấn đề, một cái gì đó giống như không nhận ra biến phiên vì lý do nào đó và điều đó ảnh hưởng đến biểu thức EL sau đó.

Tôi đang sử dụng Spring MVC 2.5 và JSTL 1.1.2.

Tôi có thể đăng bất kỳ thứ gì khác cần thiết để làm rõ vấn đề.

Trả lời

9

Đã sửa lỗi. Sự cố xảy ra với chỉ thị <%@ page session="false" %> được tìm thấy trong tệp include.jsp được trang của tôi sử dụng, mà tôi đã xóa khỏi địa điểm toàn cầu đó.

Điều này ngăn trang jsp truy cập vào các biến phạm vi phiên. Vì vậy, chỉ <%=request.getSession().getAttribute("foo")%> hoạt động trong trường hợp đó ...

8

gì:

<c:out value="${sessionScope.userSession}"/> 

hoặc

<c:out value="${sessionScope['userSession']}"/> 

cho?

+0

Tương tự với '': null –

+0

Thử biến sessionScope như đã nêu ở trên. –

+0

Nó cho null một lần nữa ... –

4

<c:out value="${sessionScope}"/> hoặc chỉ ${sessionScope} liệt kê tất cả các thuộc tính trong phạm vi ứng dụng portlet.

vì vậy, Bạn có thể cố gắng để có được thuộc tính của bạn với biểu thức này!

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