springMVC中controller的传参的几种方法


首先我们要有一个名为test1的jsp文件

使用原生的Servlet API 作为Controller 方法的参数

@Controller
@RequestMapping("test")//一般在最开始加上这句话,若加上,在访问某个页面时则需要在url上加上test/某个页面;若不加,在访问某个页面时直接访问就行;
public class TestControl{
@RequestMapping("index")
    public String index(HttpServletRequest request){
        String account = request.getParameter("account");
        request.setAttribute("msg","笨蛋");
        return "test1";
    }
}

使用model传值向前台传值

注意只写model是无法取出前台的参数的
利用model的addAttribute()方法即可将服务器的值传递到jsp页面中

@Controller
@RequestMapping("test")
public class TestControl{
@RequestMapping("index1")
    public String index1(Model model){
        model.addAttribute("msg","ZHAO");
        return "test1";
    }
}

使用@RequestParam 绑定请求参数参数值

@RequestMapping("index2")
public String index2(Model model, @RequestParam(value = "account") String account,@RequestParam(value = "pwd",required = false) String pwd){//参数这么写,后面的String名称不要求和前台form表单里的name相同
        //加上required = false,那么参数可以不传值,若不写,就必须传值否则就会报错
    System.out.println(account);
    System.out.println(pwd);
    model.addAttribute("account",account);
    model.addAttribute("pwd",pwd);
    return "test1";
}

直接将请求参数名作为Controller中方法的形参

@RequestMapping("index3")
public String index3(Model model,String account,String pwd){//参数这么写,要求参数名字和前台form表单里的name值是一样的
    System.out.println(account);
    System.out.println(pwd);
    model.addAttribute("account",account);
    model.addAttribute("pwd",pwd);
    return "test1";
}

利用类和model绑定请求参数参数值

在这里我们需要创建一个LoginModel类
如下:
注意类里的get,set方法一定要写,要不然后台无法拿到数据,后台也无法将数据返回到前台

public class LoginModel {
    private String account;
    private String pwd;

    @Override
    public String toString() {
        return "LoginModel{" +
                "account='" + account + '\'' +
                ", pwd='" + pwd + '\'' +
                '}';
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public String getAccount() {
        return account;
    }

    public String getPwd() {
        return pwd;
    }
}

接下来就可以正式传参了

@RequestMapping("index4")
public String index4(Model model, LoginModel loginModel){//类的属性名字要和form表单里的name一样才能绑定数据
    System.out.println(loginModel.getAccount());
    System.out.println(loginModel.getPwd());
    model.addAttribute("account",loginModel.getAccount());
    model.addAttribute("pwd",loginModel.getPwd());
    return "test1";
}

使用Pojo对象(就是封装的类,类中封装的字段作为参数)绑定请求参数值,原理是利用Set的页面反射机制找到LoginModel对象中的属性

这里我们使用上一个方法的LoginModel类

@ResponseBody//不加它就是实现的页面跳转,加上它就是返回数据
@RequestMapping("index5")
public LoginModel index5(LoginModel loginModel){//类的属性名字要和form表单里的name一样才能绑定数据
    System.out.println(loginModel.getAccount());
    System.out.println(loginModel.getPwd());
    return loginModel;//返回的是json字符串,注意要写类里的toString()方法,这样才能成功返回json字符串
}
  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring MVCController是一个Java类,用于处理HTTP请求并返回响应。它是MVC模式的控制器,负责接收用户请求并调用相应的服务层或业务逻辑层处理请求,最终将处理结果返回给用户。Controller通常使用注解来标识请求映射和请求数,以及处理请求的方法。在Spring MVCController是一个非常重要的组件,它可以帮助我们实现灵活、可扩展的Web应用程序。 ### 回答2: Spring MVC是一个基于MVC(模型-视图-控制器)设计模式的Web应用程序框架, Controller是其的一部分,负责处理用户请求,调用业务逻辑,返回响应结果。 Controller是Spring MVC框架的一个组件,装配在Spring容器。它使用注解或XML配置的方式声明被哪些URL请求所映射。当一个请求匹配到它所映射的URL时,Spring MVC框架将自动调用Controller方法Controller方法通常使用注解@RequestMapping来与HTTP的请求方法和URL进行映射。@RequestMapping注解接受一个或多个URL请求路径。这个注解还可以用于指定请求方式(GET、POST等)、请求数、请求头、响应类型等。 Controller的处理方法一般会调用业务逻辑的服务或DAO层,获取数据并对其进行处理,然后将处理结果返回给前端视图进行展示。返回结果可以是Java对象、JSON、XML等。 在Controller处理请求时,可以从请求获取数,可以通过注解@RequestParam获取URL数或表单数,也可以通过@PathVariable获取URL数。还可以通过@ModelAttribute注解将数绑定到指定的Bean。 总的来说,Spring MVCController负责处理请求、调用业务逻辑、返回响应结果,使得整个应用程序更加模块化、结构化、可维护性更高。同时通过注解以及自动化映射的特性,也可以大大地提高开发效率和代码质量。 ### 回答3: 在Spring MVC框架Controller是一个关键的组件,可以根据用户请求的不同,调用不同的方法和业务逻辑,返回相应的数据或视图给用户。Controller是连接用户请求和后端数据处理程序的桥梁,负责从请求读取数据,并将控制权交付给合适的处理程序。 Spring MVC Controller的工作方式是基于反射的,当用户发送请求到Controller时,Spring框架会根据请求的URL和请求数实例化相应的处理类,并根据请求进行方法调用,处理完成后将结果返回给用户。Controller的主要职责是接收用户请求并处理请求,处理后返回相应的结果。 Spring MVC框架Controller可以通过多种方式来创建和管理,最常用的方式是编写一个基于注解的类,使用@Controller注解标记,使得Spring能够扫描到这个类并将其实例化为一个Controller。在Controller,使用@RequestMapping注解处理URL请求,可以将URL映射到对应的方法上,使得用户请求能够得到正确的处理。 Controller方法可以接受多种数,包括HttpServletRequest、HttpServletResponse、@RequestParam、@PathVariable和@RequestBody等。这些数可以通过请求获取,用于向Controller提供必要的数据。同时,Controller方法也可以返回多种类型的数据,包括字符串、JSON、XML和View等,具体返回类型可以根据需要进行选择。 总之,Controller在Spring MVC框架起着非常重要的作用,其职责是接收用户请求,决定如何处理,将控制权交付给相应的处理程序,并将处理后的结果返回给用户。Controller的实现方式灵活多样,可以根据需要进行选择和组合,为用户提供高效、稳定、可靠的服务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值