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