2013-08-09 3 views
-1
long orgId = (Long)request.getSession().getAttribute("orgId"); 

나는세션 속성을 java로 변환하는 변환하는 방법?

그래서 내가 오랫동안로 변환 할 필요가 긴 변수에 request.getSession().getAttribute("orgId") 에서 무엇입니까 개체를 변환 할 수 없습니다입니다. 어쨌든 도움이 될 수 있습니다.

+0

긴 orgId = (롱) (. request.getSession()의 getAttribute ("orgId"))있는 longValue(); – Satya

+2

'session # getAttribute ("orgId")'에 저장된 데이터가'Long' 타입이거나'String' 포맷입니까? –

+0

내가 예상 할 수있는 유일한 문제는 당신이'orgId' 속성을 설정하지 않았고'null'을 반환한다는 것입니다. 그러면 코드가 실패합니다. 물론 질문을 편집하고 * 스택 바를 푸시 할 수 없다고 말하면서 오류의 스택 추적을 게시하면 올바른 대답을 드릴 수 있습니다. –

답변

0

"orgId"속성의 유형에 따라 다릅니다. 정말 긴 경우 코드가 작동해야합니다. 당신은 예를 들어 문자열로 추가 한 경우 Long.parseLong와 긴로 변환해야이

String strOrgId = (String) request.getSession().getAttribute("orgId"); 

그런 다음이 값을 구문 분석 할 수

long orgId = Long.parseLong((String)request.getSession().getAttribute("orgId"));

0

이 일반적인 방법 Long

long orgId = Long.parseLong(strOrgId); 
+0

['HttpSession # getAttribute'] (http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpSession.html#getAttribute (java.lang.String))는 객체를 반환하고, 그래서'orgId' 속성이'Long'으로 저장되면이 코드는 실패합니다. –

+1

저장된 속성이'String'이라고 가정합니다. 'HttpSession'은 (본질적으로)'Map '이므로 속성이'Long'으로 저장되면'ClassCastException'을 던집니다. –

0

에이 방법은 (당신이 가정하는 orgId 값이 prese있다가 오류가 너무 경향이있어, 진행하는 가장 좋은 방법이 아니다 nt 세션의 속성으로서 unboxing. orgId가 null/존재하지 않는 경우, 예외를 슬로우한다).

final long orgId; 
Object sessionValue = request.getSession().getAttribute("orgId"); 
if(sessionValue != null) { 
    if(sessionValue instanceof Long) 
    { 
    orgId = ((Long)sessionValue).longValue(); 
    } 
    else if(if(sessionValue instanceof String) { 
    orgId = Long.parseLong((String)sessionValue); 
    } 
    else { 
    // you can set orgId = 0, throw exception, do custom conversion 
    } 
} 
else { 
    // manage missed value 
} 
0

"orgId"가 세션 속성에 String 인스턴스 또는 Long 인스턴스로 저장되는 방법에 따라 다릅니다.

다음 코드는 약간 중복되지만 두 경우 모두를 위해 작동합니다.

Object attribute = request.getSession().getAttribute("orgId"); 
long orgId = Long.parseLong(String.valueOf(attribute)); 
관련 문제