如何将pageContext中的属性值转换为JSP中的scriptlet代码

时间:2013-03-25 12:53:27

标签: java jsp

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

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

      }
%>

但是,我收到一条错误,说“:类型不匹配:在编译时无法从Object转换为String”。

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

3 个答案:

答案 0 :(得分:4)

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

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

OR

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);
    }
%>

OR

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

答案 1 :(得分:0)

尝试转换为字符串:

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

答案 2 :(得分:0)

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

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

但是为了这世界上所有可爱的东西,请避免使用scriplets并查看JSTL