springMVC表单数据提交 以及客户端跳转 session内容

本文介绍了SpringMVC中如何处理表单数据提交,利用JSP作为视图,创建JavaBean和Controller,并通过注解简化映射路径。文章特别指出,与Servlet不同,SpringMVC无需使用request和response对象进行跳转。此外,讲解了客户端跳转的实现,即在路径前添加`redirect:`。同时,文章也提到了session的使用方法,虽然与Servlet一致,但在SpringMVC中表现形式有所区别。

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;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值