检查 request.getAttribute() 方法是否有行为更改

WebSphere Application Server V5.1 会将 request.getAttribute("string") 的返回结果的类型自动强制转换为 String。 在 V6 中,不会再出现上述情况,并且返回的数据是 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");%>

为了保持 V5.1 的行为,可以使用定制属性 com.ibm.wsspi.jsp.useStringCast。 有关此属性用法的更多详细信息,请参阅:

JavaServer Pages specific web container custom properties