spring这部分自接触表单提交的内容过后,其大致所涵盖的板块和servlet差不多,只是在操作上略显不同。
但是 经过学习后发现建立在已有servlet基础之上对于springMVC的学习更为简便,易懂。
熟悉的表单提交,这部分还是得用JSP文件作为view(视图)
之后便是创建一个JavaBean:
public class Product {
private int id;
private String name;
private float price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
}
创建一个特有的控制器,controller
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import pojo.Product;
@Controller
public class ProductionController {
@RequestMapping("/addproduction")
public ModelAndView add(Product product)throws Exception{
ModelAndView mv=new ModelAndView("/WEB-INF/jsp/showProduct.jsp");//这里还是试图定位的内容
return mv;
}
}
自从学了用注解的方式配置映射路径后,省事了许多,form表单的action路径依旧和注解的requestmapping(“/”)一致。
值得注意的是:
相比之前的servlet省掉了request和response对象所调用的方法进行跳转。
这个controller类和之前的不大一样,参数的设置等等
为add方法准备一个Product 参数,用于接收注入
最后跳转到showProduct页面显示用户提交的数据
注: addProduct.jsp 提交的name和price会自动注入到参数 product里
注: 参数product会默认被当做值加入到ModelAndView 中,相当于: mav.addObject(“product”,product);
所以在显示的jsp文件里,可以直接调用product实体类里的属性
创建的两个JSP文件一个用于用户填写后提交数据用 一个用于显示用户所提交具体数据:
提交:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*" isELIgnored="false"%>
<form action="addproduction">
产品名称:<input type="text" name="name" value=""><br/>
产品价格:<input type="text" name="price" value=""><br/>
<input type="submit" value="增加商品">
</form>
显示:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false" %>
产品名称:${product.name}<br>
产品价格:${product.price}
至于客户端跳转的url写法——
在之前的所提及的,无论是/index跳转到index.jsp 还是/addProduct 跳转到showProduct.jsp,都是服务端跳转。
欲使其发生客户端跳转,则其改写
@@RequestMapping("/jump")
ModelAndView mv=new ModelAndView("redirec:/WEB-INF/jsp/showProduct.jsp");//本应跳转到/jump 但是后缀被修改了
在路径名前加上redirect。
session的运用和servlet的一致,其表现不一样,在一个总的controller类里注上多个定位的注解
@RequestMapping("/check")
public ModelAndView check(Httpsession session)throws Exception{
//中间的内容即为 对其session的set与get attribute的设置 以及一些操作
//并且其设置的attribute 可以在ModelAndView里所跳转的jsp里用EL表达式获取
ModelAndView mv=new ModelAndView("check.jsp");
return mv;
}
本文介绍了SpringMVC中如何处理表单数据提交,利用JSP作为视图,创建JavaBean和Controller,并通过注解简化映射路径。文章特别指出,与Servlet不同,SpringMVC无需使用request和response对象进行跳转。此外,讲解了客户端跳转的实现,即在路径前添加`redirect:`。同时,文章也提到了session的使用方法,虽然与Servlet一致,但在SpringMVC中表现形式有所区别。
444

被折叠的 条评论
为什么被折叠?



