栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC的5种数据提交方式的优化

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC的5种数据提交方式的优化

SpringMVC的5种数据提交方式的优化
  1. 单个提交数据
    页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    首页


    点击
    


姓名:
年龄:

中央调度器DispatcherServlet对 *.action的请求进行过滤

@Controller
public class MyController {
	// RequestMapping注解与@WebServlet很像
    @RequestMapping("/first.action")
    public String first(String myname, int myage){ ===> 自动注入
    要求名称与页面中的name="myname" AND name="myage"要完全一样 
        System.out.println("myname=" + myname + "myage=" + myage);
        return "first"; // 对应first.jsp页面
        // first是由视图解析器进行的字符串拼接
    }
}
  1. 对象封装提交数据
    在提交请求中,保证请求参数的名称与实体类中成员变量的名称一致,则可以自动创建对象,自动提交数据,自动类型转换,自动封装数据到对象中。
public class User {
    private String name;
    private int age;

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + ''' +
                ", age=" + age +
                '}';
    }

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public void setName(String name) { // setter方法必须要重写,否则无法注入
        this.name = name;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

页面:

    


以下是bean/User javabean对象 <%--private String name; private int age;--%>
姓名:
年龄:
    
    @RequestMapping("/second.action")
    public String second(User user){
        System.out.println(user);
        return "first";
    }
    控制台输出 User{name='李四', age=12}
  1. 动态占位符
    仅限于超链接或地址栏提交数据,采用一/一值的,一/一大括号{}的形式,使用注解@PathVariable来解析
    页面:
                                                     <%--一"/"一值--%>
    
    动态提交
    @RequestMapping("/third/{uname}/{uage}.action")
    public String third( // 类似别名的方式当uname不等于成员变量名时
    @PathVariable("uname") String name, 
    @PathVariable("uage") int age){
        System.out.println("姓名"+name + ",年龄" + age);
        return "first";
    }
  1. 映射名称不一致
    提交请求参数与action方法的形参的名称不一致时,使用注解@RequestParam来解析。
    页面:
    


姓名:
年龄:
    @RequestMapping("/forth.action")
    public String forth(
    @RequestParam("name") String uname,  // 请求中数据提交的数据属性"name"与
    									 // 方法中的属性"uname"不一致采用这种
    									 // 方式,与第三种的区别很小,但是相比
    									 // 较而言
    @RequestParam("age") int uage) {
        System.out.println("姓名" + uname + " , 年龄" + uage);
        return "first";
    }
	// 姓名李四 , 年龄12
  1. 手工提取数据
    实现方法和采用Servlet中从Request请求中拿出数据一样,在SpringMVC中已经帮我们实现了这个对象。
    页面:



姓名:
年龄:
    @RequestMapping("/five.action")
    // 从request对象中拿出数据
    public String five(HttpServletRequest request) {
        String name = request.getParameter("name");
        // 要自己手动转
        int age = Integer.parseInt(request.getParameter("age"));
        System.out.println("name" + name + ",age" + age);
        return "first";
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028037.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号