2011-12-22 3 views
0

私は自分のカスタムタグで使用したいオブジェクトのコレクションを持っています。しかし、コレクションの要素は一度取得することができます。だから私は変数を定義することにしました。しかし、それは動作しません。ここでJSP変数にオブジェクトを入れるには?

<jsp:useBean id="rw" scope="request" class= 
"by.epam.web.libruary.transferobject.AvailableBookSet"> 
    <c:set var="element" 
     value="${rw.element}" 
     scope="page"/> 
    <mytag:bodyattr num="${rw.size}"> 
     <form name="orderBook" method="POST" action="${controllerpage}"> 
      <input type="submit" name="submit" 
       value="${rw.element.shortinfo}"> 
     </form> 
    </mytag:bodyattr> 
</jsp:useBean> 

コレクション自体のコードです:

public class AvailableBookSet extends java.util.HashSet { 
    private java.util.Iterator it; 

    @SuppressWarnings("unchecked") 
    public AvailableBookSet(){ 

      try { 
        //Retrieving info from DataBase (100% working code) 

      } catch (CannotTakeConnectionException e) { 
      } 
    } 

    public String getSize(){ 
      it = this.iterator(); 
      return Integer.toString(this.size()); 
    } 

    public Object getElement(){ 
      return it.next(); 
    } 

} 

そして、ここでは私の例外です:

org.apache.jasper.JasperException: An exception occurred processing JSP page /jsp/available_books.jsp at line 51 

48:  
49:  <jsp:useBean id="rw" scope="request" class= 
50:  "by.epam.web.libruary.transferobject.AvailableBookSet"> 
51:   <c:set var="element" 
52:    value="${rw.element}" 
53:    scope="page"/> 
54:   <mytag:bodyattr num="${rw.size}"> 

は、あなたの助けのために非常に感謝するでしょう。

答えて

1

投稿にキーコードが含まれていない限り、.getElement()メソッドを呼び出すときは、itnullです。 .next()への呼び出しはNullPointerExceptionを投げます。

<c:set var="element" value="${rw.element}" scope="page"/> 
<mytag:bodyattr num="${rw.size}"> 
+0

それは私がしようとした最初のものだった:

は、次の2行の順序を逆にしてみてください。しかし、私は同じ例外があります。 – And

+1

切り替え時に 'c:set'タグまたは' mytag:boddyattr'タグから例外がありますか? –

+0

例外は私のカスタムタグにあります。理由は分かりませんが、変数を定義することはその本体では機能しません。通常のタグで変更されました。 – And

関連する問題