1

JSPに以下のスクリプトレットコードがあります。

<%   
      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

文字列にキャストしてみてください:

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

それはあなたが知る必要があるすべてをあなたに伝えています。ページコンテキストの属性はです。Objectsにダウンキャストする必要がありますString。行う

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

しかし、この世界で素敵なものすべてのために、スクリプレットの使用を避けて調べてくださいJSTL

于 2013-03-25T12:55:46.363 に答える