参数传递方式1–使用HTTPServletRequest
@RequestMapping("/param1")
public Object testParam1(HttpServletRequest request){
//获取前台的参数
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username+"---"+password);
return null; // 不知道要返回什么页面 ,默认将 param1 路径名作为jsp文件名
//return "test1"; // 访问路径:/WEB-INF/jsp/test1.jsp
}
参数传递方式2–方法的参数名和页面参数一致
适用于 页面参数 比较少的情况下
@RequestMapping("/param2")
public Object testParam2(String username1,String password1){
System.out.println(username1+"---"+password1);
return null;
}
参数传递方式3–方法参数名和页面参数名称不一致 (但是又想拿到 页面参数)
变量名可以随便写
defaultValue: 代表当前参数的默认值 ,该属性不是必须的,是可选的 ,如果是分页可能设置为1
required: 必须的, 默认值是true ,代表当前参数必须给值 , 可以设置为false
如果对参数没有特殊要求,一般写为: @RequestParam(“password”) String password 就可以了.
@RequestMapping("/param3")
public Object testParam3(@RequestParam(name="username") String username1,
@RequestParam("password") String password1){
System.out.println(username1+"---"+password1);
return null;
}
//参数传递方式4–参数过多使用对象作为参数
@RequestMapping("/param4")
public Object testParam4(User u){
System.out.println(u);
return null;
}
参数传递方式5–包含时间类型,需要类型转换
springmvc 对于时间 , 仅支持 格式: 2020/11/12 2020-01-02
@RequestMapping("/param5")
public Object testParam5(User u){
System.out.println(u);
return null;
}
针对第四、五种传参方式的封装
private String username;
private String password;
//@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date time;
// 最简单的方式 : 类中的 时间就是String类型 , 数据表中字段也是String
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", time=" + time +
'}';
}
//生成get set方法
日期转换类
public class TimeUtils implements Converter<String, Date> {
@Override
public Date convert(String s) {
//判断输入的时间是否 为空
//方法一:
if(StrUtil.isEmpty(s)){
throw new RuntimeException("日期不能为空");
}
DateTime time = DateUtil.parse(s, "yyyy-MM-dd");
return time;
/* 方法二:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = sdf.parse(s);
return date;
} catch (ParseException e) {
//e.printStackTrace();
throw new RuntimeException("日期转换失败"); //这句话类似于 return语句
}*/
//return null;
}
}
前台jsp页面
<body>
<fieldset>
<legend>参数传递方式1--使用HTTPServletRequest</legend>
<form action="param/param1" method="get">
账号:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
<input type="submit" value="提交"><br>
</form>
</fieldset>
<fieldset>
<legend>参数传递方式2--方法的参数名和页面参数一致</legend>
<form action="param/param2" method="post">
账号:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
<input type="submit" value="提交"><br>
</form>
</fieldset>
<fieldset>
<legend>参数传递方式3--方法参数名和页面参数名称不一致</legend>
<form action="param/param3" method="post">
账号:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
<input type="submit" value="提交"><br>
</form>
</fieldset>
<fieldset>
<legend>参数传递方式4--参数过多使用对象作为参数</legend>
<form action="param/param4" method="post">
账号:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
<input type="submit" value="提交"><br>
</form>
</fieldset>
<fieldset>
<legend>参数传递方式5--包含时间类型,需要类型转换</legend>
<form action="param/param5" method="post">
账号:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
日期:<input type="text" name="time"><br>
<input type="submit" value="提交"><br>
</form>
</fieldset>
</body>
版权声明:本文为wzw_jiexika原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。