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";
}
}
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章