2016-12-21 5 views
0

요청시 부울 값을 속성 값으로 설정하는 방법.requst getAttribute를 사용하여 부울 값을 얻는 방법 java?

는 요청을 /를 isOriginalFile 속성을 포함하지 않을 수있다 다음 코드

protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 

boolean isOriginal = (boolean) req.getAttribute(“isOriginalFile"); 
//Some code 
} 

을 고려하십시오. 어떻게 처리할까요?

답변

3

속성이 nullfalse을 얻는 것은 당신이 무엇을 기대이라고 가정 :

boolean isOriginal = Boolean.TRUE == req.getAttribute("isOriginalFile"); 

을 그럼 당신은 당신이 false를 얻을 것이다 (null 포함) Boolean.TRUE 이상의 무엇에 속성을 설정합니다. (

req.setAttribute("isOriginalFile", "true"); 
+1

좋은 하나! 잘 작동 :-) – lsof

0

getAttribute 메소드에 의해 리턴 된 값을 구문 분석하십시오.

boolean isOriginal = Boolean.valueOf(String.valueOf(req.getAttribute("isOriginalFile"))); 

getAttribute는 Object를 반환하고 Boolean.valueOf 메서드는 String 매개 변수를 사용합니다. 따라서 먼저 반환 된 값을 String으로 변환 한 다음 구문 분석합니다.

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

+1

는'Boolean.valueOf이어야한다 ... :

req.setAttribute("isOriginalFile", Boolean.TRUE); req.setAttribute("isOriginalFile", (Boolean) true); req.setAttribute("isOriginalFile", true); 

을하지만 (이 다음 false로 평가되기 때문에)되지는 문자열과 같이

당신이 중 하나의 방법으로 설정할 수 있습니다)'이고 개시 견적은 수정이 필요합니다. – JonK

+0

수정했습니다. 감사! – anacron

+0

그런 속성이 없다면, String.valueOf()는 NPE –