0

クラスSequenceとのOneToManyバインディングを持つクラスモジュールがあります。私の目的は、モジュールのリストを表示し、それらの1つをクリックして、関連するシーケンスのリストを表示することですが、機能しません。HTTP500エラーが発生します。

ここに私のコントローラーがあります:

@RequestMapping(value="formation", method = RequestMethod.GET)
public ModelAndView allModules() {
List<Module> allModules = moduleService.findAll();
return new ModelAndView("formation", "modules", allModules);
}

@RequestMapping(value="sequences/{module}", method = RequestMethod.GET)
public String displaySequences(@PathVariable ("module") Module module, Model model) {
List<Sequence> allSequences = sequenceService.findByModule(module);
model.addAttribute("sequences", allSequences);
return "sequences";
}

シーケンスのリストを返すモジュールのリストを表示するjsp

<c:forEach items="${modules}" var="module">
            <ul>
                <li><a href="sequences/${module}">${module.titre}</a>
                    <br/>
                </li>
            </ul>
        </c:forEach>

それで、私のエラーはどこから来るのですか?

私がそれをするときそれは働きます:

    @RequestMapping(value="/sequences/{moduleId}", method = RequestMethod.GET)
public String displaySequences(@PathVariable ("moduleId") Long moduleId, Model model) {
Module module = moduleService.findById(moduleId);
model.addAttribute("module", module);
return "sequences";
}

そして私はリンクを変更します:

<a href="sequences/${module}">${module.titre}

しかし、私は私のエラーを理解したいと思います。

4

1 に答える 1

0

シーケンスを表示できなかった理由は、Spring がこれを解析する方法を知らないためです。

/cmap-web/sequences/com.almerys.jpa.tomcatspring.Module@12b0f0ae

Module インスタンスに。

これについては、このセクションの最後の段落にあるSpring docs で読むことができます16.3.2.2 URI Template Patterns便宜上、ここに貼り付けます。

@PathVariable 引数は、int、long、Date などの任意の単純な型にすることができます。Spring は自動的に適切な型に変換するか、失敗した場合は TypeMismatchException をスローします。追加のデータ型を解析するためのサポートを登録することもできます。セクション16.3.3.14「メソッド パラメーターと型変換」およびセクション16.3.3.15「WebDataBinder 初期化のカスタマイズ」を参照してください。

于 2012-08-12T19:37:17.270 に答える