当前位置: 首页 > news >正文

SpringMvc--后续(参数问题)

参数问题

package com.hwq.controller;import com.hwq.beans.User;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.servlet.http.HttpServletRequest;
import java.sql.Array;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.logging.SimpleFormatter;@Controller
public class ParamController {@InitBinderpublic void initData(WebDataBinder web){//将日期格式转化成yyyy-MM-ddweb.registerCustomEditor(Date.class,new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));}/*方式一:传统request接收参数param1?id=1get中文乱码问题:调整Tomcat服务器server.xml配置post中文乱码(偏码过滤器)在web.xml中配置过滤器<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>*/@RequestMapping("/param1")public String Param1(HttpServletRequest request){String name = request.getParameter("name");System.out.println("name="+name);return "index";}/*方式二:直接使用参数接收参数param2?id=12*/@RequestMapping("/param2")public String Param1(String name){System.out.println("id="+name);return "index";}/*方式三:使用数组接收参数      int integer[]param3?hobby=睡觉&hobby=打豆豆*/@RequestMapping("/param3")public String Param3(String[] hobby){System.out.println("likes="+ Arrays.toString(hobby));return "index";}/*方式四:使用集合接收参数param4?hobby=睡觉&hobby=打豆豆*/@RequestMapping("/param4")public String Param4(@RequestParam("hobby") List<String> hobby){System.out.println("likes="+ hobby);return "index";}/*方式五:日期   接收参数方式一:字符串接收param5?data=2019-09-09方式二:形式参数直接接收,这种方式对日期格式有严格要求yyyy/MM/ddparam51?data=2019/09/09方式三:使用日期初始化绑定@InitBinderpublic void initData(WebDataBinder web){//将日期格式转化成yyyy-MM-ddweb.registerCustomEditor(Date.class,new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));}*/@RequestMapping("/param5")public String Param5(String data){System.out.println("data="+ data);//将字符串转化成日期SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");try {Date parse = simpleDateFormat.parse(data);System.out.println("parse="+parse);} catch (ParseException e) {e.printStackTrace();}return "index";}@RequestMapping("/param51")public String Param51(Date data){System.out.println("data="+ data);//将字符串转化成日期return "index";}@RequestMapping("/param52")public String Param52(Date data){System.out.println("data="+ data);//将字符串转化成日期return "index";}/*方式六:RestFull风格传参*/@RequestMapping("/param6/{id}/{name}")public String Param6(@PathVariable("id") Integer id, @PathVariable("name") String name){System.out.println("id="+id+"name="+name);return "index";}/*方式七:对象传参*/@RequestMapping("/param7")public String Param7(User user){System.out.println("user="+user);System.out.println(user.getGroup());return "index";}}

方式一:传统request接收参数

方式二:直接使用参数接收参数

创建一个add.jsp

方式三:使用数组接收参数

方式四:使用集合接收参数

方式五:日期 接收参数

/*
方式五:日期   接收参数方式一:字符串接收param5?data=2019-09-09方式二:形式参数直接接收,这种方式对日期格式有严格要求yyyy/MM/ddparam51?data=2019/09/09方式三:使用日期初始化绑定@InitBinderpublic void initData(WebDataBinder web){//将日期格式转化成yyyy-MM-ddweb.registerCustomEditor(Date.class,new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));}*/
@RequestMapping("/param5")
public String Param5(String data){System.out.println("data="+ data);//将字符串转化成日期SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");try {Date parse = simpleDateFormat.parse(data);System.out.println("parse="+parse);} catch (ParseException e) {e.printStackTrace();}return "index";
}
@RequestMapping("/param51")
public String Param51(Date data){System.out.println("data="+ data);//将字符串转化成日期return "index";
}
@RequestMapping("/param52")
public String Param52(Date data){System.out.println("data="+ data);//将字符串转化成日期return "index";
}

方式六:RestFull风格传参

创建一个User类

package com.hwq.beans;import java.util.Date;
import java.util.List;public class User {private int id;private String username;private String password;private int age;private List<String> hobby;private Date data;private Group group;public Group getGroup() {return group;}public void setGroup(Group group) {this.group = group;}public User() {}public User(int id, String username, String password, int age, List<String> hobby, Date data) {this.id = id;this.username = username;this.password = password;this.age = age;this.hobby = hobby;this.data = data;}public int getId() {return id;}public void setId(int id) {this.id = id;}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 int getAge() {return age;}public void setAge(int age) {this.age = age;}public List<String> getHobby() {return hobby;}public void setHobby(List<String> hobby) {this.hobby = hobby;}public Date getData() {return data;}public void setData(Date data) {this.data = data;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", age=" + age +", hobby=" + hobby +", data=" + data +'}';}
}

Group类

方式七:对象传参


http://www.mrgr.cn/news/19149.html

相关文章:

  • Python世界:文件自动化备份实践
  • 如何开启事务、确认提交事务、事务回滚、自动提交和禁止自动提交?
  • Tomcat部署及优化
  • Leetcode面试经典150题-54.螺旋矩阵
  • 力扣面试150 旋转链表 闭链成环
  • ChatTCP:一款离线TCP数据包分析macOS APP,致力于让分析TCP数据包像看聊天记录一样简单
  • 如何在 Linux Terminal 中使用 Cmd+C复制,Cmd+V粘帖?
  • Docker入门学习-01
  • vue3页面空白-普通函数和箭头函数提升的不同
  • Windows使用ffmpeg获取麦克风数据
  • 激光雷达产品介绍
  • MySQL备份:备份策略、物理备份、mysqldump备份、增量备份、差异备份
  • DeFi是否还存在Alpha机会?Pencils Protocol 带领市场“向前看”
  • 深入理解 Prometheus 数据模型与指标监控
  • MATLAB eig 函数简介:计算特征值和特征向量
  • VS2022使用指定的LLVM版本
  • Linux C++ 开发7 - GDB常用命令汇总(你想了解的都在这)
  • 【算法专场】模拟(上)
  • C++复习day02
  • 专业文件搜索工具 | UltraSearch Pro v4.4.1.1015 绿色特别版