2013-07-09 12 views
5

Mam problem z atrybutem sesji na stronie jsp, chciałbym przekazać go do łańcucha znaków, dzięki czemu mogę go użyć do wysłania zapytania do bazy danych, np.jsp niezdolny do umieszczenia atrybutu sesji w łańcuchu znaków

String group=session.getAttribute("group"); 

wiem, że została poprawnie wypełniona, ponieważ jeśli mogę umieścić poniżej na stronie wyświetla poprawną wartość

<%= 
session.getAttribute("group") 
%> 

błąd otrzymuję to

niezgodność typów: nie można przekonwertować z obje ct do String

Czy istnieje inny sposób umieszczenia zmiennej sesji w łańcuchu? czy robię to zupełnie źle. każda pomoc doceniona.

+0

Co to jest zmienna 'session'? Jak to rozumiesz? Czy to jest 'HttpSession'? – NINCOMPOOP

Odpowiedz

9

Trzeba oddać go do String

String group=(String)session.getAttribute("group"); 

gdzie session.getAttribute("group"); powraca Object.

+1

Próbowałem zmienić kod, tak jak powiedziałeś, ale teraz otrzymujesz "ciąg znaków nie może być rozwiązany na typ" – user2168435

+0

Czy masz import <% @ page import = "java.lang. *"%> ??? w twoim jsp? –

+2

@ Bradadh nie sądzisz, że import jest domyślny. Myślę, że to literówka. –

1

session.getAttribute(String name) zwróci Object.

pewności i zapobiec przypadkowemu ClassCastException, użyłbym String.valueOf(Object obj), tak:

String group = String.valueOf(session.getAttribute("group")); 

Źródła:

Difference between casting to String and String.valueOf

http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpSession.html#getAttribute(java.lang.String)

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#valueOf(java.lang.Object)

-2

wystarczy umieścić tak:

String group=""+session.getAttribute("group"); 

Dołącz jako ciąg, proste.

Powiązane problemy