@RequestParam案例、简单介绍

文章展示了如何在SpringMVC中使用@RequestParam注解从HTML表单接收参数,包括文本和文件上传。在UploadController.java中,定义了一个处理文件上传的POST方法,接收用户名、年龄和文件参数,然后将文件保存到指定目录。同时提到了参数名称不一致时的解决办法。
摘要由CSDN通过智能技术生成

@RequestParam案例

upload.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>
<body>

    <form action="/upload" method="post" enctype="multipart/form-data">
        姓名: <input type="text" name="username"><br>
        年龄: <input type="text" name="age"><br>
        头像: <input type="file" name="image"><br>
        <input type="submit" value="提交">
    </form>

</body>
</html>

UploadController.java

package com.itheima.controller;

import com.itheima.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

@Slf4j
@RestController
public class UploadController {

    //
    @PostMapping("/upload")
    public Result upload(String username, Integer age, MultipartFile image) throws IOException {
        log.info("姓名:{},年龄:{},图片:{}", username, age, image);
//        将上传文件保存/Users/haoran/Desktop/Java web/image
//        获取原始文件名
        String originalFilename = image.getOriginalFilename();
        image.transferTo(new File("/Users/haoran/Desktop/Java web/image/" +originalFilename));
        return Result.success();
    }
}

添加@RequestParam

image-20230512165447836 image-20230512165859959 image-20230512165617992

不加@RequestParam

image-20230512170134214 image-20230512170147594 image-20230512170310408 image-20230512170336611

保存成功

还有一种情况

4、参数名称不一致

index.jsp

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
  <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %></h1>
  <h3>4、参数名称不一致解决方案</h3>
  <form action="${pageContext.request.contextPath}/four.action">
    name:<input type="text" name="name"><br/>
    age:<input type="text" name="age"><br/>
    <input type="submit" value="提交">
  </form>
</body>
</html>

controller.java

	@RequestMapping(value = "/four")
	public String dataSubmit4(@RequestParam("name") String name4,@RequestParam("age") Integer age4){
		System.out.printf(name4 +","+age4);
		return "login";
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单spring boot框架下实现用户登录的示例代码: User.java ```java package com.example.demo.model; import lombok.Data; @Data public class User { private String username; private String password; } ``` UserMapper.java ```java package com.example.demo.mapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import com.example.demo.model.User; @Mapper public interface UserMapper { @Select("SELECT * FROM user WHERE username=#{username} AND password=#{password}") User login(@Param("username") String username, @Param("password") String password); } ``` UserService.java ```java package com.example.demo.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.example.demo.mapper.UserMapper; import com.example.demo.model.User; @Service public class UserService { @Autowired private UserMapper userMapper; public User login(String username, String password) { return userMapper.login(username, password); } } ``` UserController.java ```java package com.example.demo.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.example.demo.model.User; import com.example.demo.service.UserService; @RestController public class UserController { @Autowired private UserService userService; @PostMapping("/login") public String login(@RequestParam String username, @RequestParam String password) { User user = userService.login(username, password); if (user == null) { return "登录失败"; } else { return "登录成功"; } } } ``` application.properties ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 以上代码中,使用了@RestController注解将UserController声明为一个控制器,@PostMapping注解将login方法映射到/login接口,@RequestParam注解用于接收请求参数,@Autowired注解用于依赖注入,@Service注解用于声明UserService为一个服务,@Mapper注解用于声明UserMapper为一个Mapper,@Data注解用于自动生成getter、setter和toString方法。在UserMapper中使用了<select>语句和resultType属性实现了查询,同时使用了@Param注解指定参数名。application.properties中配置了数据库连接信息。这样,当用户访问/login接口时,会调用UserController的login方法,该方法调用了UserService的login方法,后者又调用了UserMapper的login方法,最终返回用户登录信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值