速度模板中的ArrayList(Javaobect)迭代



我有两个表作者,书籍。和Pojos,.hbm.xml,每张桌子。我写了一个选择的查询,该查询从表中给了我一些细节。

select A.id.BookNum,A.id.AuthorName,B.id.DatePublished,B.id.Price
,B.id.Condition,B.id.BookBought from Author A, Book B where
B.id.Condition == 'NEW' and  A.id.BookNum = A.id.BookNum order by
A.id.AuthorName;

我得到了结果,并将其存储在arraylist中。未批准的BookList当我尝试以速度模板显示此内容时,我将无法迭代此内容。我有我的pojos作为作者,书籍的作者,分别为" getter()/setter()",分别用于授权和书籍和授权,bookid,其中包含其中的figters/setters。

    public class Book implements java.io.Serializable {
        private static final long serialVersionUID = 1L;
        private BookId id;
        public Book (){ }
        public Book (BookId id){this.id = id;}
        public BookId getId(){return id;}
        public void setId(BookId id) {this.id = id;}
    }

和我的书架,带有getters/setters的字段,基本上是所有表列。

public class BookId implements java.io.Serializable {
        private static final long serialVersionUID = 1L;
        private BookNum;
        public BookId (){   }
        public String getBookNumid() {return BookNum;}
        public void setBookNum(String bookNum) {bookNum= bookNum;}
      }

和我的HBM如下:

    <hibernate-mapping>
        <class name="com.bookStore.hibernate.dao.Book" table="BOOK" schema="ORG">
            <composite-id name="id" class="com.bookStore.hibernate.dao.BookId">
                <key-property name="BookNum" type="string">
                    <column name="SH_BOOK_NUM" length="17" />
                </key-property>
                <key-property name="DatePublished" type="date">
                    <column name="SH_DATE_PUB" length="13" />
                </key-property>
                <key-property name="Price" type="int">
                    <column name="SH_PRICE" length="5" />
                </key-property>
                <key-property name="Condition" type="string">
                    <column name="SH_CONDITION" length="10" />
                </key-property>
                <key-property name="BookBought " type="date">
                    <column name="SH_BOOK_BOUGHT" length="13" />
                </key-property>
            </composite-id>
        </class>
    </hibernate-mapping>  

我发现,当我尝试以速度迭代和显示时,这很困难。我的代码段如下:

      #foreach($unApprovedBook in $unApprovedBookList)
           <input type="text" id="bookNum" value="$unApprovedBook.getId().getBookNumid()">
         #set($i = $i + 1)

通过这样做,我在UI中看到 $ uneppravedbook.getId()。getBookNumid()如果我将代码更改为:

#foreach($unApprovedBook in $unApprovedBookList)
<input type="text" id="bookNum" value="$unApprovedBook">
#set($i = $i + 1)

我看到的是: [ljava.lang.object;@3160316 在UI中。请让我知道如何以速度迭代我的JavaObject。

  [1]: https://i.stack.imgur.com/eBrYQ.jpg

尝试以这种方式:

您应该使用属性表达式$unApprovedBook.id.BookNum。尝试遵循Java命名约定。

  <input type="text" id="bookNum" value="${unApprovedBook.id.BookNum}">

最新更新