SpringMVC-基礎篇-UerController

package net.jbit.controller;


import java.util.HashMap;
import java.util.Map;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;


import net.jbit.entity.User;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;


/*只要打上@Controller掃描器就自動會掃描到她*/
@Controller
public class UerController {

private Map<String, User> map = new HashMap<String, User>();


/*無參的構造方法,創建Controller時自動執行了。*/
public UerController() {
User user1 = new User("Tom", "1234");
User user2 = new User("Jim", "1234");
User user3 = new User("Lily", "1234");
map.put(user1.getUserName(), user1);
map.put(user2.getUserName(), user2);
map.put(user3.getUserName(), user3);
}


/*=================================================================*/
/*例子*/
/*地址欄中怎麼來調用這個方法?*/
/*返回結果可以是ModleAndView也可以是String*/
@RequestMapping(value="/accp")
public String hello(){
System.out.println("進入到註解的控制器中!");
return "jbit";
}



/*=======================================================================*/
/*查多*/
@RequestMapping(value = "/cha")
public ModelAndView cha(){
/*如果返回結果是ModelAndView那就必須先創建一個ModelAndView*/
/*注意:ModelAndView有兩個包,一定要導org.springframework.web.servlet.ModelAndView;*/
ModelAndView mv = new ModelAndView();
/*循環迭代的時候是迭代HashMap的值集合*/
mv.addObject("key", map.values());
mv.setViewName("list");
return mv;
}
/*========================================================================*/
/*跳轉到增加的頁面*/
@RequestMapping(value = "/ab")
/*如果用第二種方法,進入頁面之前要確認一下User是有值的。要先實例化一下*/
/*Model就相當於request和response,可以往裏面傳參*/
public String addBefore(Model model){
model.addAttribute(new User());
return "add";
}



/*增加1*/
/*通過傳統的servlet來接收頁面傳過來的值*/
/*前臺用的是普通的from表單控件*/
/*也支持session*/
/*@RequestMapping(value = "/add")
public String save(HttpServletRequest request, HttpSession session){
String userName = request.getParameter("userName");
String password = request.getParameter("password");
取完之後封裝到user裏面
User user = new User(userName, password);
map.put(user.getUserName(), user);
跳回到查詢方法裏,從而進入查詢頁面
return "redirect:/cha";
}*/


/*zzzzzzzzzzzzzzzzzzzzzzzz*/



/*增加2*/
/*頁面數據直接綁定實體類的屬性*/
/*method表示這個方法要幹什麼*/
/*GET:查詢*/
/*POST:增加*/
/*DELETE:刪除*/
/*PUT:修改*/
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String save(User user){
map.put(user.getUserName(), user);
/*跳回到查詢方法裏,從而進入查詢頁面*/
return "redirect:/cha";
}

/*========================================================================*/



/*刪除*/
/*用rest風格接收前臺傳過來的參數*/
@RequestMapping(value = "del/{myname}", method = RequestMethod.DELETE)
/*@PathVariable是路徑參數*/
public String del(@PathVariable(value = "myname") String myname){
map.remove(myname);
return "redirect:/cha";



/*========================================================================*/


/*修改*/

/*查單條*/
@RequestMapping(value = "one/{name}", method = RequestMethod.GET)
/*如果要往頁面傳值的話要藉助Model*/
public String one(@PathVariable(value = "name") String name, Model model){
User user = map.get(name);
model.addAttribute(user);
return "update";
}


/*改*/
@RequestMapping(value = "/one/{name}", method = RequestMethod.POST )
public String update(@PathVariable(value="name") String name,User user){
map.put(name, user);
return "redirect:/cha";
}
}
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章