1、通过注解ModelAttribute直接映射表单中的参数到POJO。在from中的action写提交的路径,在input的name写参数的名称。

package com.demo.model;

public class user {
private String username;
private String password;
private int nsex; public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public void setNsex(int nsex) {
this.nsex = nsex;
} public int getNsex() {return nsex;}
}

POJO

<%--
Created by IntelliJ IDEA.
User: wym
Date: 2019/10/8
Time: 23:17
To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/login" method="post">
用户名:<input type="text" name="username"/> <br><br>
密码:<input type="password" name="password"/> <br><br>
<input type="submit" value="提交"/>
</form>
</body>
</html>

FORM

package com.demo.controller;

import com.demo.model.user;
import com.demo.service.Userservice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpSession; @Controller
public class LoginController {
@Autowired
private Userservice userService; @RequestMapping(value="/login", method= RequestMethod.POST)
public String hello(@ModelAttribute user u, HttpSession session){ session.setAttribute("user", u);
user user = userService.findbyname(u.getUsername());
if(user == null)
return "loginfail";
else if(!user.getPassword().equals(u.getPassword()))
return "falsepaswd";
else
return "helloworld";
} }

CONTROLLER

注意!!这里只有input的参数name名称和pojo中的成员域名称完全相同才可以通过@ModelAttribute进行直接映射,否则无法被赋值的参数将会以默认值的方式呈现。

2.显然不可能form获取的内容总是某个pojo的属性,完全有可能是单独出现的。这时可以使用@RequestParam获取参数。

     public String hello(@RequestParam(value="username") String A, @RequestParam(value="password") String B, HttpSession session){
session.setAttribute("a", A);
session.setAttribute("b", B);
user user = userService.findbyname(A);
if(user == null)
return "loginfail";
else if(!user.getPassword().equals(B))
return "falsepaswd";
else
return "helloworld"; }

这时候只需跟在@RequestParam后的参数和form的name一致即可,String的名称可以随便取。

3.可以直接啥注解都不加,只需保证参数名称和form的name即可

    public String hello( String username, String password, HttpSession session){
session.setAttribute("a", username);
session.setAttribute("b", password);
user user = userService.findbyname(username);
if(user == null)
return "loginfail";
else if(!user.getPassword().equals(password))
return "falsepaswd";
else
return "helloworld"; }

4.通过HttpServletRequest接收

    public String hello( HttpServletRequest req, HttpSession session){
username=req.getParameter("username");
password=req.getParameter("password");
session.setAttribute("a", username);
session.setAttribute("b", password);
user user = userService.findbyname(username);
if(user == null)
return "loginfail";
else if(!user.getPassword().equals(password))
return "falsepaswd";
else
return "helloworld"; }

此外,还有一些其他的方式接受数据,例如通过@RequestBody等方式传递json数据。

springmvc后台获取表单提交的数据——@ModelAttribute等方式的更多相关文章

  1. (五)springmvc之获取表单提交的数据

    8.1:使用Request <form method="post" id="form1" action="<%=request.getCo ...

  2. koa 基础(十一)koa 中 koa-bodyparser 中间件获取表单提交的数据

    1.app.js /** * koa 中 koa-bodyparser 中间件获取表单提交的数据 * 1.npm install --save koa-bodyparser * 2.引入 const ...

  3. koa 基础(十)原生node.js 在 koa 中获取表单提交的数据

    1.app.js // 引入模块 const Koa = require('koa'); const router = require('koa-router')(); /*引入是实例化路由 推荐*/ ...

  4. 获取表单提交的数据getParameter()方法

    请求对象:request public String getParameter(String name); 通过request的getParameter(String name)方法获取 表单里面的n ...

  5. springMVC+thymeleaf form表单提交前后台数据传递

    后端: @RequestMapping(value = "/add", method=RequestMethod.POST) public String save(@ModelAt ...

  6. 在html中如何获取表单提交的数据

    a.html: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www ...

  7. 在Action中获取表单提交数据

    -----------------siwuxie095 在 Action 中获取表单提交数据 1.之前的 Web 阶段是提交表单到 Servlet,在其中使用 Request 对象 的方法获取数据 2 ...

  8. Struts2_day02--Action获取表单提交数据

    Action获取表单提交数据 1 之前web阶段,提交表单到servlet里面,在servlet里面使用request对象里面的方法获取,getParameter,getParameterMap 2 ...

  9. 非form表单提交的数据就要用@requestbody注解获取http传过来的值,尤其json

    非form表单提交的数据就要用@requestbody注解获取http传过来的值,尤其json

随机推荐

  1. vsphere6.7-虚拟机与ESXI时间同步

    环境介绍 esxi 6.7+vsphere6.7 需求配置 设置虚拟机时间与esxi时间同步.esxi时间与NTP服务器同步 配置方式 在esxi上开启NTP服务器时间同步,如下图: 修改虚拟服务器的 ...

  2. 外边距margin的叠加问题

    下午在看<css禅意花园>,书中提到了外边距重叠,于是去网上搜索了一下资料. 写了一个小例子做测试.发现网上的有些总结与我的测试不符,索性就自己总结了╮(╯▽╰)╭ <!DOCTYP ...

  3. OracleLinux6安装

    针对Oracle数据库安装的linux系统 1.首先要有oracle linux的镜像 链接:https://pan.baidu.com/s/1S3xYr4YNGtU-351bVaS1-Q 提取码:a ...

  4. jQuery添加/删除Select的Option项

    使用语法1. $("#select_id").append("<option value='Value'>Text</option>") ...

  5. CSP 通信网络(201709-4)

    问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M条通路,每条通路只能单向传递信息,即一条从部门a到部门b的通路只能由a向b传递信息.信息可以通过中转的方式进行传递,即如果a能将信息 ...

  6. Boot-crm管理系统开发教程(二)

    ps:昨天将管理员登录的功能完成了,并完美的解决跳过登录从而进入管理界面的bug,今天我们将实现"查询用户"功能. ①在po包中创建Customer类,并编写相关变量和添加set/ ...

  7. 位运算解决“一个数组中,只有一个数字出现n次,其他数字出现k次”问题

    转自:https://blog.csdn.net/monster_girl/article/details/52928864 在学习完位操作后,经常会遇到一类关于查找缺失整数的问题. 第一类是给你一个 ...

  8. C#开发微信公众平台-就这么简单(转载)(附原文链接)

    一直使用的是一百八的诺鸡鸭,没有想去接触看起来风风火火的移动互联网:但因工作需要维护一个微信公众订阅号,考虑以前有做网站的基础,就想着做个简单的微信后台管理:看了官方的开发文档,比狗哥地图的短许多,又 ...

  9. luogu题解P2312解方程--暴力模+秦九韶

    题目链接 https://www.luogu.org/problemnew/show/P2312 分析 这道题很毒啊,这么大的数. 但是如果多项式\(\sum_{i=0}^N a[i]*X^i=0\) ...

  10. O052、Create Volume 操作 (Part III)

    参考https://www.cnblogs.com/CloudMan6/p/5617980.html       Jun 20 17:15:56 DevStack-Rocky-Compute-22 c ...