6.SpringMVC 参数获取

package com.gzcgxt.erp;

import java.util.Arrays;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.gzcgxt.erp.domain.User;

/**
 * 获取请求参数数据
 * <p>
 * Title: HandlerRequestController
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Company: www.baidu.com
 * </p>
 * 
 * @author 刘诗华 微信:15390725037
 * @date 2019-7-16下午4:20:59
 * @version 1.0
 */

@Controller
@RequestMapping("/handlerRequestController")
public class HandlerRequestController {

    /**
     * 第一种:通过注入Servlet对象来获取http协议中的数据信息
     * <p>Title: getParameter1</p>
     * <p>Description: </p>
     * @param request    请求对象
     * @param response   响应对象
     * @param session       会话对象
     * @return
     */
    @RequestMapping("/getParameter1")
    public String getParameter1(HttpServletRequest request,
            HttpServletResponse response, HttpSession session) {
        
        String name = request.getParameter("name");
        System.out.println(name);
        return "";
    }
    
    
    /**
     * 第二种:通过参数名称直接注入数据
     * <p>Title: getParameter2</p>
     * <p>Description: </p>
     * @param name
     * @param age
     * @return
     * 注:在实际项目开发中,有可能从http协议中的名称与我们的参数不一致的问题
     * 如: u_userName=lsh&u_age=28
     * 则我们可以使用一个注解标签来解决这个问题
     * @RequestParam("u_userName") String name
     * @RequestParam("u_age") Integer age
     * getParameter2(@RequestParam("u_userName")String name,@RequestParam("u_age")Integer age)
     */
    @RequestMapping("/getParameter2")
    public String getParameter2(String name,Integer age)
    {
        System.out.println(name);
        System.out.println(age);
        return "";
    }
    
    
    /**
     * 第三种:RESTful风格传参
     * <p>Title: getParameter3</p>
     * <p>Description: </p>
     * @return
     * @PathVariable 注解标签
     * http://lsh.springmvc.com:8080/handlerRequestController/delete/100
     */
    @RequestMapping("/delete/{id}")
    public String delete(@PathVariable("id")Integer id)
    {
        System.out.println(id);
        return "";
    }
    
    
    /**
     * 第四种:批量删除
     * <p>Title: deleteAll</p>
     * <p>Description: </p>
     * @param id 
     * @return
     * <form action="/handlerRequestController/deleteAll" name="form" id="form" method="post">
         <input type="checkbox" name="id" id="id" value="1" checked="checked">
         <input type="checkbox" name="id" id="id" value="2" checked="checked">
         <input type="checkbox" name="id" id="id" value="3" checked="checked">
         <input type="checkbox" name="id" id="id" value="4" checked="checked">
         <input type="submit" name="send" id="send" value="提交"/>
      </form>
     */
    @RequestMapping("/deleteAll")
    public String deleteAll(Integer[] id)
    {
        List<Integer> list = Arrays.asList(id);
        System.out.println(list);
        return "";
    }
    
    
    /**
     * 第五种:通过bean对象直接注入
     * <p>Title: multipleBean</p>
     * <p>Description: </p>
     * @return
     */
    @RequestMapping("/getParameter5")
    public String getParameter5(User u)
    {
        System.out.println(u);
        return "";
    }
    
    
    public String getParameter6()
    {
        
        return "";
    }
    
    
    
    
    
}

 

表单提交多个对象数据信息

<%@ 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>工作流开发</title>
</head>

<body>

<form name="form" id="form" method="post" action="/flow/add">
    <table>
        <tr>
            <td>ERP物料:</td>
            <td>
                <input type="text" name="bom.name" id="bom.name" />
            </td>
        </tr>
        <tr>
            <td>供应商:</td>
            <td>
                <input type="text" name="company.name" id="company.name" />
            </td>
        </tr>
    </table>
    <input type="submit" name="send" id="send" value="提交"/>
</form>
</body>
</html>

后台接收代码

package com.gzcgxt.scm;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 后台接收前台传入多个对象参数
 * <p>Title: FlowController</p>
 * <p>Description: </p>
 * <p>Company: www.baidu.com</p> 
 * @author    刘诗华 微信:15390725037
 * @date    2019-7-16下午9:01:04
 * @version 1.0
 * 使用 @InitBinder注解来设置注入
 */

@Controller
@RequestMapping("/flow")
public class FlowController {
    
    @RequestMapping("/saveChanges")
    public String saveChanges()
    {
        return "saveChanges";
    }
    
    @RequestMapping("/add")
    public String add(Bom bom,Company company)
    {
        System.out.println(bom);
        System.out.println(company);
        return "";
    }
    
    /**
     * 设置以bom.开头的参数将全部注入 bom对象中
     * <p>Title: initBomDataBindler</p>
     * <p>Description: </p>
     * @param binder
     */
    @InitBinder("bom")
    public void initBomDataBindler(WebDataBinder binder)
    {
        binder.setFieldDefaultPrefix("bom.");
    }
    
    /**
     * 设置以company.开头的参数将全部注入 company对象中
     * <p>Title: initBomDataBindler</p>
     * <p>Description: </p>
     * @param binder
     */
    @InitBinder("company")
    public void initCompanyDataBindler(WebDataBinder binder)
    {
        binder.setFieldDefaultPrefix("company.");
    }
    
}

 

posted @ 2019-07-16 17:12  往事只能回味---  阅读(227)  评论(0)    收藏  举报