springMVC 访问过程

来源:互联网 发布:程序员鄙视链图 编辑:程序博客网 时间:2024/06/05 08:49

工程目录


访问下面 requestmapping 对应的 handler ,127.0.0.1:8080/SpringMvcDemoFox/foxb_input


/** * @Title: handleRequest * @Description: TODO 进入录入页面 * @param model * @return * @return: String */@RequestMapping("/foxb_input")public String inputProduct() {logger.info("InputProductController called");return "foxb/ProductForm";}

将会访问对应的视图 ProductForm.jsp




当我们录入对应的数据提交时,提交的action为 foxb_save ,springmvc 会去找这个对应的 处理器,@RequestMapping(value="/foxb_save",method=RequestMethod.POST):


<form action="foxb_save" method="post"><fieldset><legend>Add Product Form1</legend><label for="name">product name:</label><input type="text" id="name" name="name" value="" tabindex="1" /><label for="price">price:</label><input type="text" id="price" name="price" value="" tabindex="2" /><div id="buttons"><label for="dummy"> </label><input type="reset" id="reset" tabindex="3" /><input type="submit" value="Add Product" tabindex="4" /></div></fieldset></form>

/** * @Title: saveProduct * @Description: TODO 保存产品并且跳转显示页面 * @param pa * @param model * @return * @return: String */@RequestMapping(value="/foxb_save",method=RequestMethod.POST)public String saveProduct(ProductForm pa, Model model) {Product product = new Product();product.setName(pa.getName());product.setPrice(Double.valueOf(pa.getPrice()));logger.info("SaveProductController called");model.addAttribute("product", product);return "foxb/ProductDetails";}

其中saveProduct 方法中的参数,ProductForm pa ,其中对应了视图页面name,springMVC 会去创建这个类的实例,并且把提交的数据从 request 中取出,将对应的数据绑定给

ProductForm 中,而 Model model ,每个访问控制器 Handler 时,都会创建一个 Model 实例,用来存储返回的模型。可能此时我们发现这里并没有使用 modelandview,

其实不用 modelandview 也是可以的,甚至是不使用model,也可以响应页面,后面的实例会有介绍到,这里其中其实是springMVC 会默认的将我们的参数放入到 response 域中。


0 0
原创粉丝点击