Springmvc02

1.Map集合传值

在web.xml中设置编码进行编码格式 防止乱码

 

页面中数据值的传递,将后台数据输出到页面中。

@RequestMapping("test3")
    public String test3(CollectionVO collectionVO){
        System.out.println("====================");
        collectionVO.getMaps().forEach((k,v)-> System.out.println(k+"="+v));
        return "index";
    }

跳转获取数据页面

<%@page contentType="text/html; UTF-8" pageEncoding="UTF-8" isELIgnored="false" %>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>测试参数接收</title>
</head>
<body>


    <h1>测试对象和零散类型参数接收</h1>
    <h2>获取request作用于数据:${requestScope.username}</h2>
    <h3>获取request作用于数据:${username}</h3>

</body>
</html>

 

post防止中文乱码解决方式

在web.xml文件中进行配置  springmvc中封装了解决编码方式 只要配置即可

<!--配置post请求方式中文乱码的Filter-->
  <filter>
    <filter-name>charset</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>
  </filter>

重点:注意springmvc配置文件中包扫描的位置,将包扫描的范围进行配置,

否则将不能进行其他路径下的访问

------------

从对象中获取值的方法

@RequestMapping("user01")
    public String test(HttpServletRequest request, HttpServletResponse response){
        //收集参数
        //调用业务方法
        String name = "永乐大帝";
        User user = new User(1,"永乐大帝","123456",new Date());
        request.setAttribute("user",user);
        request.setAttribute("username",name);
        return "attr";
    }

映射文件

<%@page contentType="text/html; UTF-8" pageEncoding="UTF-8" isELIgnored="false" %>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>测试参数接收</title>
</head>
<body>


    <h1>测试对象和零散类型参数接收</h1>
    <h2>获取request作用于数据:${requestScope.username}</h2>
    <h3>获取request作用于数据:${username}</h3>
    <hr color="red">
    <h3>id:${requestScope.id}</h3>
    <h3>id:${user.id}</h3>
    <h3>id:${user.username}</h3>
    <h3>password:${user.password}</h3>
    <h3>birthday:${user.birthday}</h3>
</body>
</html>

浏览器进行访问

 

格式化时间日期方法进行输出

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@page contentType="text/html; UTF-8" pageEncoding="UTF-8" isELIgnored="false" %>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>测试参数接收</title>
</head>
<body>


    <h1>测试对象和零散类型参数接收</h1>
    <h2>获取request作用于数据:${requestScope.username}</h2>
    <h3>获取request作用于数据:${username}</h3>
    <hr color="red">
    <h3>id:${requestScope.id}</h3>
    <h3>id:${user.id}</h3>
    <h3>id:${user.username}</h3>
    <h3>password:${user.password}</h3>
    <h3>birthday:${user.birthday}</h3>
<%--格式化日期--%>
    <h3>bir:<fmt:formatDate value="${requestScope.user.birthday}" pattern="yyyy-MM-dd"/> </h3>
</body>
</html>

集合方式获取数据 

对集合方式进行获取数据

package com.liuboss.filter;

import com.liuboss.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import sun.security.util.Password;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

@Controller
public class AttrController {
    /*使用forward跳转页面数据传递
    * 1.传递零散数据类型 2.传递对象  3.传递集合
    *
    * */
    @RequestMapping("user01")
    public String test(HttpServletRequest request, HttpServletResponse response){
        //收集参数
        //调用业务方法
        String name = "永乐大帝";
        User user = new User(1,"永乐大帝","123456",new Date());
        request.setAttribute("user",user);
        User user1 = new User(1,"朱棣","123456",new Date());
        User user2 = new User(2,"朱元璋","123456",new Date());
        User user3 = new User(3,"朱允炆","123456",new Date());
        List<User> users = Arrays.asList(user1,user2,user3);
        request.setAttribute("users",users);
        request.setAttribute("username",name);
        return "attr";
    }
}

jsp中回去和集合数据的方式

重点 时间日期类进行格式化输出

<h3>bir:<fmt:formatDate value="${requestScope.user.birthday}" pattern="yyyy-MM-dd"/>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html; UTF-8" pageEncoding="UTF-8" isELIgnored="false" %>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>测试参数接收</title>
</head>
<body>


    <h1>测试对象和零散类型参数接收</h1>
    <h2>获取request作用于数据:${requestScope.username}</h2>
    <h3>获取request作用于数据:${username}</h3>
    <hr color="red">
    <h3>id:${requestScope.id}</h3>
    <h3>id:${user.id}</h3>
    <h3>id:${user.username}</h3>
    <h3>password:${user.password}</h3>
    <h3>birthday:${user.birthday}</h3>
<%--格式化日期--%>
    <h3>bir:<fmt:formatDate value="${requestScope.user.birthday}" pattern="yyyy-MM-dd"/> </h3>
    <%--遍历集合中的数据--%>
    <c:forEach items="${requestScope.users}" var="user">
        id:${user.id}=== ${user.username} ==== ${user.password} === <fmt:formatDate value="${requestScope.user.birthday}" /><br>
    </c:forEach>
</body>
</html>

-------------------------------------------------------------------

其中request对象和model的用法功能完全相同  用那个都可以

 request.setAttribute("username",name);
        model.addAttribute("username", name);

 

package com.liuboss.filter;

import com.liuboss.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import sun.security.util.Password;

import javax.print.attribute.standard.JobOriginatingUserName;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

@Controller
public class AttrController {
    /*使用forward跳转页面数据传递
    * 1.传递零散数据类型 2.传递对象  3.传递集合
    *
    * */
    @RequestMapping("user01")
    public String test(Model model, HttpServletRequest request, HttpServletResponse response){
        //收集参数
        //调用业务方法
        String name = "永乐大帝";
        User user = new User(1,"永乐大帝","123456",new Date());
        request.setAttribute("user",user);
        User user1 = new User(1,"朱棣","123456",new Date());
        User user2 = new User(2,"朱元璋","123456",new Date());
        User user3 = new User(3,"朱允炆","123456",new Date());
        List<User> users = Arrays.asList(user1,user2,user3);
        request.setAttribute("users",users);
        request.setAttribute("username",name);
        model.addAttribute("username", name);
        return "attr";
    }
}

---redirect进行值的传递

//request作用域进行值的获取
    @RequestMapping("user02")
    public String test02() throws UnsupportedEncodingException {
        //收集参数
        //调用业务方法
        String name = "永乐大帝";
        //流程跳转
        //解决中文乱码
        return "redirect:/attr.jsp?name="+ URLEncoder.encode(name,"UTF-8");
    }
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html; UTF-8" pageEncoding="UTF-8" isELIgnored="false" %>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>测试参数接收</title>
</head>
<body>


    <h1>测试对象和零散类型参数接收</h1>
    <h2>获取request作用于数据:${requestScope.username}</h2>
    <h3>获取request作用于数据:${username}</h3>
    <hr color="red">
    <h3>id:${requestScope.id}</h3>
    <h3>id:${user.id}</h3>
    <h3>id:${user.username}</h3>
    <h3>password:${user.password}</h3>
    <h3>birthday:${user.birthday}</h3>
<%--格式化日期--%>
    <h3>bir:<fmt:formatDate value="${requestScope.user.birthday}" pattern="yyyy-MM-dd"/> </h3>
    <%--遍历集合中的数据--%>
    <c:forEach items="${requestScope.users}" var="user">
        id:${user.id}=== ${user.username} ==== ${user.password} === <fmt:formatDate value="${requestScope.user.birthday}" /><br>
    </c:forEach>
    <hr class="red"/>
    <h3>获取地址栏中的数据:${param.name}</h3>
</body>
</html>

 

---上面的方法只适合获取单个数值  当获取对象和多个数值传递时 用session对象进行数据的传递

request对象获取值的方法

@RequestMapping("user02")
    public String test02(HttpServletRequest request) throws UnsupportedEncodingException {
        //收集参数
        //调用业务方法
        String name = "永乐大帝";
        //流程跳转
        //解决中文乱码
        User user1 = new User(1,"朱棣","123456",new Date());
        request.getSession().setAttribute("user1",user1);
        return "redirect:/attr.jsp?name="+ URLEncoder.encode(name,"UTF-8");
    }
<h3>id:${user1.id}</h3>
    <h3>username:${user1.username}</h3>
    <h3>password:${user1.password}</h3>
    <h3>birthday:${user1.birthday}</h3>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html; UTF-8" pageEncoding="UTF-8" isELIgnored="false" %>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>测试参数接收</title>
</head>
<body>


    <h1>测试对象和零散类型参数接收</h1>
    <h2>获取request作用于数据:${requestScope.username}</h2>
    <h3>获取request作用于数据:${username}</h3>
    <hr color="red">
    <h3>id:${requestScope.id}</h3>
    <h3>id:${user.id}</h3>
    <h3>id:${user.username}</h3>
    <h3>password:${user.password}</h3>
    <h3>birthday:${user.birthday}</h3>
<%--格式化日期--%>
    <h3>bir:<fmt:formatDate value="${requestScope.user.birthday}" pattern="yyyy-MM-dd"/> </h3>
    <%--遍历集合中的数据--%>
    <c:forEach items="${requestScope.users}" var="user">
        id:${user.id}=== ${user.username} ==== ${user.password} === <fmt:formatDate value="${requestScope.user.birthday}" /><br>
    </c:forEach>
    <hr class="red"/>
    <h3>获取地址栏中的数据:${param.name}</h3>
    <h3>id:${user1.id}</h3>
    <h3>username:${user1.username}</h3>
    <h3>password:${user1.password}</h3>
    <h3>birthday:${user1.birthday}</h3>
</body>
</html>

springmvc初级知识完结

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值