日期:2014-05-17  浏览次数:20658 次

getServletContext().getAttribute() 的类型转换问题
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<html>
<head><title>Java Web</title></head>
<body>
<center>
<%
String aname=null;
String avalue=null;
 Enumeration enu = this.getServletContext().getAttributeNames();
 while(enu.hasMoreElements())
 {
 aname = (String)enu.nextElement();
 avalue=(String)getServletContext().getAttribute(aname);
%>
<%=aname%>-----><%=avalue%><br>
<%
 }
%>
</center>
</body>
</html>

第14行  java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
getAttribute()返回的是Object类型,将其转换为String然后赋给一个String类型的value为什么会报错呢?
如果不转换不赋值,直接输出 <%=getServletContext().getAttribute(aname)%>  却可以,为什么啊?

Java?Web String

------解决方案--------------------
toString()就完事了,照着麻烦