2

Listオブジェクトを表示するためにページ付けを使用してDisplayTagを使用しています。Transactionsには、Companyオブジェクトである'company' / getCompany()というプロパティがあります。Companyオブジェクトには、「name」/ getName()という文字列が含まれています。

私のコードは次のようになります:

<display:table name="${transactions}" id="transaction" pagesize="2" defaultsort="1">  

<display:column property="id" title="ID" href="showTransactionDetails.html" paramId="id" />
<display:column property="company.name" title="Company Name" sortable="true"    >
<display:column property="status" title="Status" sortable="true">

</display:table>

ここに奇妙な部分があります....最初のページが表示され、各ページに2つのレコードが含まれる合計11ページがある場合、すべてがうまく機能します。

ページ番号をクリックすると、ページの進行状況を確認できます。しかし、奇妙な理由で、ページ(2-4)をクリックすると、例外が発生します。

org.apache.jasper.JasperException:javax.servlet.ServletException:javax.servlet.jsp.JspException:例外:[。LookupUtil]オブジェクトタイプ「com.replacements.entity.Transaction」でプロパティ「company.name」を検索中にエラーが発生しました。原因:null

(DBの必須フィールドであるため、すべてのトランザクションレコードにcompany.nameの値が含まれていることに注意することも重要です)

4

8 に答える 8

2

会社がnullである可能性はありますか?つまり、データベースに会社がないトランザクションがあります。

于 2010-02-16T22:49:33.700 に答える
2

Hibernate マッピングの会社プロパティを「lazy=false」に変更することで解決しました

ページネーションがすべてではなく一部のページで機能した理由はまだわかりません。しかし、これで直りました。

皆さんのアイデアに感謝します。

于 2010-02-17T02:11:22.950 に答える
1

@Vincentが言うように、おそらくcompanynullです。データベースに値がある可能性がありますが、Transactionクラスがdb値を正しく読み取らず、そのcompanyメンバーを設定していないという問題がある可能性があります。ブレークポイントを設定してTransactionインスタンスを確認してみましたか?

于 2010-02-16T22:59:08.683 に答える
1

タグname="${transactions}"内のを に変更してみてください。 display:tablename="transactions"

transactionsセッションまたはリクエストなどにコレクション があると仮定します。

于 2010-02-17T00:11:50.717 に答える
1

私の最初の推測は、空の会社リストがあるということです。表示部分に到達する前に、トランザクション結果を出力するためにダンプを印刷することをお勧めします。

それが問題でない場合は、特殊文字が原因で表示の問題が発生するのを見てきました。会社名の 1 つに、制御文字またはその他の表示できない文字が含まれている可能性があります。

于 2010-02-16T23:03:35.070 に答える
0

クラス内のすべての属性にsetterメソッドとgetterメソッドがあり、名前が属性名と一致していることを確認してください。

于 2012-11-30T09:33:02.860 に答える
0

requestURI タグ...そのように.... requestURI="

于 2010-12-01T14:16:40.960 に答える
0

例外メッセージは文字通り、Transactionnull. したがって、 のnull背後にトランザクション リストの項目があるよう${transactions}です。トランザクション リストのロード/ポピュレート ロジックに問題があるように見えます。多分最後のアイテムはnull?それとも、リストがリクエストスコープであり、後続のリクエストで欠落しているいくつかのリクエストパラメーターに依存しているため、リストのロード/入力が失敗した可能性がありますか?

興味のある人にとっては、Company一部の人が示唆するように null だった場合、EL はそのようにエラーになりませんでした。Company代わりにオブジェクトタイプについて言及していたでしょう。

于 2010-02-16T23:23:44.167 に答える