2

このスタック オーバーフローの質問JSP が bean でプロパティを見つけられないのとよく似た問題があります。また、この質問javax.el.PropertyNotFoundException: Property 'foo' not found on type com.example.Bean。ただし、私の場合、すべてを本で行ったと思いますが、まだエラーが発生しています。 以下は私のJavabeanコードスニペットの一部です

    private double otheramount;
    private int no;
    private String name;


        public double getOtherAmount()
            {
                return otheramount;
            }
            public void setOtherAmount(double newotheramount)
            {
                otheramount = newotheramount;        
            }
public int getNo()
            {
                return no;
            }
            public void setNo(int newno)
            {
                no = newno;        
            }
public String getName()
            {
                return name;
            }
            public void setName(String newname)
            {
                name = newname;        
            }

以下は私のDAOコードの一部です

while(rs.next())
         {

              MyBean mybean = new MyBean();

              mybean.setNo(rs.getInt("No"));
              mybean.setName(rs.getString("Full_Names"));              
              mybean.setOtherAmount(rs.getDouble("OtherAmount"));              

              allresults.add(mybean);



         }

以下はサーブレットコードの一部です

try
{
ArrayList allresults = mydao.search();    
request.setAttribute("allresults",allresults);
RequestDispatcher dispatch =request.getRequestDispatcher("Pages/mypage.jsp");
dispatch.forward(request, response);
}
catch(Exception ex)
{
}

以下は、JSP ページの HTML および JSTL コードです。

<c:forEach var="results" items="${requestScope.allresults}">
  <tr>
    <td><c:out value="${results.no}"></c:out></td>
    <td><c:out value="${results.name}"></c:out></td>
    <td><c:out value="${results.otheramount}"></c:out></td>
  </tr>
</c:forEach>

問題は、その部分をコメントすると問題<c:out value="${results.otheramount}"></c:out>なく実行され、エラーがスローされないことです。ただし、この部分のコメントを外すと、プロパティが見つからないというエラーが発生します。ちなみに、プロパティ otheramount はずっと後に追加されました。

Netbeans 7.1.2 を使用しています。どんな助けでも大歓迎です。

4

1 に答える 1

7

Bean プロパティ名は、プライベート フィールド名に基づいて解決されません。代わりに、getter メソッド名に基づいて解決されます。

したがって、特定のケースでは、プロパティ名はotheramountではなく、代わりにotherAmountです。

以下も参照してください。

于 2013-04-15T14:32:30.890 に答える