檢查 request.getAttribute() 方法上的行為變更

WebSphere Application Server 5.1 版已自動將 request.getAttribute("string") 傳回的資料強制轉型為字串。 在第 6 版中,不再存在這種情況,傳回的資料是 java.lang.Object 的實例,而不是 java.lang.String 的實例。 如果 request.getAttribute() 隸屬於指派或變數宣告,則該規則將偵測 JSP 檔中的項目。

將標示的項目範例

變數宣告:
<% String myAtt = request.getAttribute("myAtt");%>

變數指派:
<% String myAtt;
   myAtt = request.getAttribute("myAtt");%>


不含強制轉型運算子的非物件變數指派
<% Date d= request.getAttribute("myDate");%>

不會標示下列程式碼:

已強制轉型的程式碼:
<% String myAtt= (String) request.getAttribute("myAtt");%>

不隸屬於指派或變數宣告的程式碼
<% request.getAttribute("myDate");%>

如果要保留 5.1 版中的行為,可以使用自訂內容 com.ibm.wsspi.jsp.useStringCast。 如需內容用法的相關詳細資料,請參閱:

JavaServer Pages 特有的 Web 儲存器自訂內容