1

我的 JSP 中有以下一段 scriptlet 代码。

<%   
      String instockMessage = pageContext.getAttribute("instockMessage");
      if ((instockMessage != null) && (instockMessage.trim().length() != 0)) {
            instockMessage = instockMessage.replaceAll("<[^>]*>", "").trim();
            pageContext.setAttribute("instockMessage", instockMessage);

      }
%>

但是,我在编译时收到一条错误消息,提示“:类型不匹配:无法从对象转换为字符串”。

有谁知道如何解决这个问题?

4

3 回答 3

4

这是因为 pageContext.getAttribute() 返回一个对象。您必须将对象转换为字符串才能解决此问题:

String instockMessage = (String) pageContext.getAttribute("instockMessage");

或者

String instockMessage = pageContext.getAttribute("instockMessage").toString();

那就是修改后你的最终代码应该是这样的:

<%  
    String instockMessage = pageContext.getAttribute("instockMessage").toString();
    if ((instockMessage != null) && (instockMessage.trim().length() != 0)) {
        instockMessage = instockMessage.replaceAll("<[^>]*>", "").trim();
        pageContext.setAttribute("instockMessage", instockMessage);
    }
%>

或者

<%  
    String instockMessage = (String) pageContext.getAttribute("instockMessage");
    if ((instockMessage != null) && (instockMessage.trim().length() != 0)) {
        instockMessage = instockMessage.replaceAll("<[^>]*>", "").trim();
        pageContext.setAttribute("instockMessage", instockMessage);
    }
%>
于 2013-03-25T12:54:29.500 回答
0

它告诉你你需要知道的一切。来自页面上下文的属性是Objects,您需要向下转换为String. 做一个

String instockMessage = (String) pageContext.getAttribute("instockMessage");

但是为了这个世界上所有美好的事物,请避免使用脚本并查看JSTL.

于 2013-03-25T12:55:46.363 回答
0

尝试转换成字符串:

String instockMessage = (String) pageContext.getAttribute("instockMessage");
于 2013-03-25T12:54:44.337 回答