springにおけるModel、ModelMap、ModelAndViewの使い方
3233 ワード
1.Model(org.sprigframe eweet.ui.Model)
ページにパラメータを渡すことができますが、urlをジャンプすることはできません。
先端のパラメータ:
modelとあまり違いません。
例:
ページにパラメータを渡すことができますが、urlをジャンプすることはできません。
先端のパラメータ:
${requestScope.user.loginname }
例:(@ModelAttribute修飾の方法は、loginより先に起動し、要求パラメータ値を対応変数に割り当てます。メソッドのModelにオブジェクトを追加することができます。メソッドにModelタイプのパラメータを追加することが前提です。)@RequestMapping(value="/login1new")
public String login(Model model, @ModelAttribute User2 user){
user.setUsername(" 2");
System.out.println(user.toString());
model.addAttribute("user", user);
return "result1";
}
上のコードは以下の通りです。@ModelAttribute
public void userModel(String loginname,String password,Model model){
logger.info("userModel");
// User jsp
User2 user = new User2();
user.setLoginname(loginname);
user.setPassword(password);
// User Model
model.addAttribute("user", user);
}
@RequestMapping(value="/login1")
public String login(Model model){
logger.info("login");
// Model user
User2 user = (User2) model.asMap().get("user");
System.out.println(user);
// user username
user.setUsername(" ");
return "result1";
}
2.ModelMap(org.springframe eweet.ui.ModelMap)modelとあまり違いません。
@ModelAttribute
public void userMode2(String loginname,String password,ModelMap modelMap){
logger.info("userMode2");
// User jsp
User2 user = new User2();
user.setLoginname(loginname);
user.setPassword(password);
// User ModelMap
modelMap.addAttribute("user", user);
}
@RequestMapping(value="/login2")
public String login2(ModelMap modelMap){
logger.info("login2");
// ModelMap user
User2 user = (User2) modelMap.get("user");
System.out.println(user);
// user username
user.setUsername(" ");
return "result2";
}
先端取込み:${requestScope.user.loginname }
3.ModelAndView(org.springframe ewk.web.servlet.ModelAndView)ModelAndViewオブジェクトには2つの役割があります。(1)urlアドレスを設定する(これもModelAndViewとModelMapの主な違いです。(2)ページにパラメータを転送します。例:
@Controller
public class User3Controller{
private static final Log logger = LogFactory.getLog(User3Controller.class);
@ModelAttribute
public void userMode3(String loginname,String password,
ModelAndView mv){
logger.info("userMode3");
User2 user = new User2();
user.setLoginname(loginname);
user.setPassword(password);
// User ModelAndView Model
mv.addObject("user", user);
}
@RequestMapping(value="/login3")
public ModelAndView login3(ModelAndView mv){
logger.info("login3");
// ModelAndView Model user
User2 user = (User2) mv.getModel().get("user");
System.out.println(user);
// user username
user.setUsername(" ");
// ,
mv.setViewName("result3");
return mv;
}
}
先端取込み:${user.loginname}