0

こんにちは、モデルを返した後にビュー ページを取得できません。以下のビューはいくつかのコード チャンクです。

List<GridMappingVO> searchList= gridMappingFacade.validate(gridMappingVO);
if( users.equals(searchList.get(0).getUser()) 
    && passwrd.equals(searchList.get(0).getPass()) ) {
    System.out.println("validation succesfull");
    mv = new ModelAndView("searchResults");
    logger.info("Response is: " + mv);
    mv.addObject("searchList", searchList);
} else {
    List<String> list = new ArrayList<String>();
    list.add("Invalid");
    map.put("error_messages", list);
    mv.addAllObjects(map);
}
return mv;

スタックトレース

08:51:31,713  INFO http-8080-1 controller.GridMappingController:45 - Response is: ModelAndView: reference to view with name 'searchResults'; model is null

08:51:31,728 DEBUG http-8080-1 support.DefaultListableBeanFactory:1367 - Invoking afterPropertiesSet() on bean with name 'searchResults'

これで何が悪いのか、誰かが私を助けることができますか?

4

1 に答える 1

0

条件が満たされない場合は、else ブロックに移動します。そのため、モデルがインスタンス化されることはありません。if ブロックの外側でモデル オブジェクトのインスタンス化を宣言する

mv = new ModelAndView("searchResults");
    List<GridMappingVO> searchList= gridMappingFacade.validate(gridMappingVO);
    if( users.equals(searchList.get(0).getUser()) 
    && passwrd.equals(searchList.get(0).getPass()) ) {
    System.out.println("validation succesfull"); 
    logger.info("Response is: " + mv);
    mv.addObject("searchList", searchList);
} else {
    List<String> list = new ArrayList<String>();
    list.add("Invalid");
    map.put("error_messages", list);
    mv.addAllObjects(map);
}
return mv;

このようにして、メソッドの開始時にハッシュマップをインスタンス化することもできます。

Map model = new HashMap();

オブジェクトをモデルに追加します。

model.put("searchList", searchList);

戻りながら、新しい ModelAndView オブジェクトを作成します

return new ModelAndView("jsp/searchResults", model)
于 2012-09-23T14:26:37.387 に答える