Controller層(二)
2662 ワード
Springアーキテクチャでは、@Controller層の中で@Request Mapping注釈方法を使用しています.この注釈方法は以下のいくつかあります.
戻り値は、ModelAndView、Model、Model Map、Map、View、String、voidがあります.
パラメータは任意に多くてもいいです.パラメータはPOJOオブジェクトとしてもいいし、POとしてもいいし、Aray、List、Stringなどとしてもいいです.Requestのパラメータ名と一致すれば、Springは特定のデータタイプに自動的に結合されて便利です.
この中には三つの特殊なタイプのパラメータがあります.HttpServletRequest request、HttpServletResonse reponse、Model model、その中の一つは現在のウェブページからの要求で、二つ目は戻ります.三つ目は現在のウェブページから送られてきたmodelパラメータセットです.
注:パラメータのModelは同じMapにもなります.またはModelMapにもなります.
ModelAndView
このようなのはViewとModelを直接Springにカプセル化し、Springを動的なウェブアーキテクチャに渡して静的に戻ります.ModelAndView構成方法により、戻るページ名を指定することができます.setView Name()方法により指定されたページにジャンプし、addObject()を使って戻りたい値を設定します.addObject()はいくつかの異なるパラメータがある方法で、戻り先の名前をデフォルトで指定することができます.
Mapは@ResonseBodyに協力してJSONに戻ります.
Steringに戻るのが柔軟です.
戻り値は、ModelAndView、Model、Model Map、Map、View、String、voidがあります.
パラメータは任意に多くてもいいです.パラメータはPOJOオブジェクトとしてもいいし、POとしてもいいし、Aray、List、Stringなどとしてもいいです.Requestのパラメータ名と一致すれば、Springは特定のデータタイプに自動的に結合されて便利です.
この中には三つの特殊なタイプのパラメータがあります.HttpServletRequest request、HttpServletResonse reponse、Model model、その中の一つは現在のウェブページからの要求で、二つ目は戻ります.三つ目は現在のウェブページから送られてきたmodelパラメータセットです.
注:パラメータのModelは同じMapにもなります.またはModelMapにもなります.
ModelAndView
このようなのはViewとModelを直接Springにカプセル化し、Springを動的なウェブアーキテクチャに渡して静的に戻ります.ModelAndView構成方法により、戻るページ名を指定することができます.setView Name()方法により指定されたページにジャンプし、addObject()を使って戻りたい値を設定します.addObject()はいくつかの異なるパラメータがある方法で、戻り先の名前をデフォルトで指定することができます.
@RequestMapping("/show1")
public ModelAndView show1(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView("/demo2/show");
mav.addObject("account", "account -1");
return mav;
}
ModelMap @ResponseBody
@GetMapping("/index")
public ModelMap loginAuth2(ModelMap mmp) {
Mo m = new Mo();
m.setAge(10);
m.setName(" ");
mmp.addAttribute("addm", m);
mmp.put("putm", m);
mmp.addAttribute("add", "add");
mmp.put("put", "put");
return mmp;
}
${requestScope.add}
${requestScope.addm}
${requestScope.put}
${requestScope.putm}
com.boolib.web.UserController$Mo@23680076
add
put
com.boolib.web.UserController$Mo@23680076
MapMapは@ResonseBodyに協力してJSONに戻ります.
@ResponseBody
@GetMapping("/login1")
public Map loginAuth1() {
ModelMap mmap = new ModelMap();
Mo m = new Mo();
m.setAge(10);
m.setName(" ");
Map map = new HashMap<>();
map.put("key", m);
return map;
}
{ "key" : { "name" : " ", "age" : 10 } }
StringSteringに戻るのが柔軟です.
@GetMapping("/login3")
public String loginAuth3(ModelMap mmp) {
Mo m = new Mo();
m.setAge(10);
m.setName(" ");
mmp.addAttribute("addm", m);
mmp.put("putm", m);
mmp.addAttribute("add", "add");
mmp.put("put", "put");
return "index";
}
${requestScope.add}
参照http://blog.csdn.net/sunhuwh/article/details/41727257