java处理表单变量_Java自学之SpringMVC:接收表单数据

学习目的:使用SpringMVC接收表单数据。

Part 1

新建一个pojo。

package pojo;

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;

}

}

Part 2

在WebContent下,新建一个添加商品的addProduct.jsp。

pageEncoding="UTF-8" import="java.util.*" isELIgnored="false"%>

产品名称 :

产品价格:

Part 3

准备ProductController控制器。

注:addProduct.jsp提交的name和price会自动注入到参数 product里。

package 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 ProductController {

@RequestMapping("/addProduct")

public ModelAndView add(Product product) {

ModelAndView amv = new ModelAndView("showProduct");

return amv;

}

}

Part 4

在/WEB-INF/page新建showProduct.jsp,用来显示添加的商品信息。

pageEncoding="UTF-8" isELIgnored="false"%>

产品名称: ${product.name}

产品价格: ${product.price}

Part 5

配置springmvc-servlet.xml。

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd">

Part 6

输入信息之后点击增加商品

成功显示新增的信息,SpringMVC成功接收到表单数据,学习目的完成。

Part 7

流程理解

输入完表单请求的数据后,提交。来到DispatcherServlet中,处理器映射器根据提交的路径,找到了相匹配的处理器Controller(已注解了路径)。接下来到了我认为的难点:在Controller的方法中,通过参数绑定,表单中的数据直接注入到了形参(Product product)中,前提是表单中的属性和Bean:Product中的属性是相匹配的,这样Spring才能找到。(此处各种类型参数绑定的链接详解:[Spring MVC] - SpringMVC的各种参数绑定方式​www.cnblogs.com

SpringMVC中的参数绑定总结_spring mvc,数据_hugh 的博客-CSDN博客​blog.csdn.net8ebd1d3cbe5bfc78cf00a752c80ef7cf.png

)然后进入方法,在方法中创建了一个ModelAndView,并且通过这个构造方法制定了返回的View,与Springmvc-servlet中的配置配合后,showProject+.jsp就变成了最后返回视图的路径。

疑问解答:

Q:地址访问不是会根据web.xml中的配置 所有的访问都会经过DispatcherServlet,然后到配置文件springmvc-servlet.xml 里查找,然后现在因为设置成了注解方式,所以直接查找所有控制器,找到路径所对应的方法,执行相关代码嘛。那直接访问jsp文件的时候不是经过以上步骤么???

A:地址访问都是从web.xml开始的,/这个叫默认匹配,优先级最低,这里只配置了默认匹配,所以首先所有请求都是由DispatcherServlet转发的,DispatcherServlet会根据handler mapping去找相应请求的处理器,这个handler mapping就是映射关系,这些映射关系或者从配置文件里读取,或者配置文件里有会从注解中获取,这些都是在初始化的时候完成的,初始化后这些映射关系统一变成handler mapping,至于访问jsp文件,jsp文件路径在映射关系中找不到,这时spring会调用tomcat的defaultServletDispatcher,这个转发器就是web容器加载静态资源的转发器,就是直接根据路径找文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值