0

ユーザーを含むリストがあります。JSPで印刷しようとしていますが、印刷できない方法があります。この例外を取得するHTTP Status 500 - javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean name 'users[0]' available as request attribute

JSP のコード

<c:forEach items="${users}" var="user" varStatus="status">
   <spring:bind path="users[${status.index}].name">
      <c:out value="${status.value}" />
   </spring:bind>
</c:forEach>

コントローラ

ModelAndView modelAndView = new ModelAndView("go_some_JSP_page");
List<UserEntity> users = userManager.getAllObjects();
modelAndView.addObject("users", users);

ところで、UserEntity には name フィールドがあります。バインディングを削除して印刷しようとするとuser.name<c:out value="user.name" />値が印刷されます

どこが間違っていて、何をする必要がありますか? ありがとう

以下のコードは機能しません。[フィールド @NumberFormat でフォーマットを呼び出す必要があるため、status変数を使用して試してみる必要があります]

<spring:bind path="user.name">
   <c:out value="${status.value}" />
</spring:bind>

このエラーが発生します -->javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean name 'user' available as request attribute

したがって、Bean バインディングを追加すると、空のテーブルが得られます:(。インスタンスが空であるためだと思います。したがって、これは正しいアプローチのようには思えません。

@ModelAttribute("user")
public UserEntity userEntityBinding() {
    return UserEntity.newInstance();
}

作業コードはhttps://github.com/hth/StatusInvoke.gitにあります

展開に問題が発生した場合はお知らせください。

この質問は解決されました。ご覧いただきありがとうございます。

4

4 に答える 4

1

LazyList単純なリストの代わりに使用してみることができます。例を見たい場合は、私の質問のいずれかを参照してください。質問文で、LazyList の使用方法について言及しました。

お役に立てば幸いです。乾杯。

于 2013-01-08T12:25:08.763 に答える
0

その場合、spring:bindを使用できるとは思いません。AFAIKはModelMapから変数を取得しようとしますが、「for」変数からは取得できません。

于 2013-01-04T18:54:33.480 に答える
0

これは、モデルとビューが返された場合、リストを作成する正しい方法です

ModelAndView modelAndView = new ModelAndView("go_some_JSP_page");
List<UserEntity> users = userManager.getAllObjects();
modelAndView.addObject("users", users);

そして、これはリストを参照する正しい方法です

<c:forEach items="${users}" var="user" varStatus="status">
    <spring:bind path="user.name">
      <c:out value="${status.value}" />
   </spring:bind>
</c:forEach>

あなたの問題は別の場所にあるに違いありません.nameフィールドが確実に入力されているか、正しいjspが呼び出されているか...上記のコードは正しく、動作するはずです。

于 2012-12-31T10:52:55.927 に答える
0

@NumberFormat アノテーションを呼び出す正しい答えは、spring:eval expressionタグを使用することです

<spring:eval expression="user.balance" />

これにより、注釈が呼び出され、注釈に記載されているように書式設定が実行されます

于 2013-01-03T01:19:25.653 に答える