当前位置: 首页 > 知识库问答 >
问题:

在spring mvc中将多个参数从视图传递到控制器

阎俊英
2023-03-14
<a href="ReqElement/reqTypeList.html?menuTab=CRM Setup">CRM Setup</a>
@RequestMapping("/reqTypeList")
    public ModelAndView reqTypes(@ModelAttribute("reqElementSetup") ReqElementBean reqElBean, BindingResult result, Map<String, Object> map,HttpSession session,@RequestParam("id") String menu) {
@RequestMapping("/reqTypeList")
public ModelAndView reqTypes(@ModelAttribute("reqElementSetup") ReqElementBean reqElBean, BindingResult result, Map<String, Object> map,HttpSession session,@RequestParam("id") String id,@RequestParam("roleId") String roleid,@RequestParam("funcId") String funcid) {

共有1个答案

程修雅
2023-03-14

我不知道您期望从其他方便的方式这样做。这是最方便的方式。您可以精确地指定您想要的参数,而这些参数就是Spring提供给您的。

这才是正确的做法。

这是你的问题陈述

由于采用了上述方法,即在参数越来越多的情况下,方法参数的大小会增大。

首先,编写Spring MVC是为了使您的生活更容易,并且,除其他原因外,尽可能多地移除对Servlet API的依赖。

第二,拥有大量的方法参数绝对没有错。您甚至不需要自己调用这个方法,而Spring是这样的,并且它拥有使用正确的参数调用它所需的所有工具。

@RequestMapping
public String someMethod(@RequestParam String param1, @RequestParam String param2) {
    // use the request parameters
}

等于

@RequestMapping
public String someMethod(HttpServletRequest request) {
    String param1 = request.getParameter("param1");
    String param2 = request.getParameter("param2");
    if (param1 == null) {
        throw new // some bad request exception
    }
    if (param2 == null) {
        throw new // some bad request exception
    }
    // use the request parameters
}

我希望您看到有更多的样板、复杂的代码可以编写。如果需要为缺少的请求参数添加默认值,情况就会变得更糟。使用Spring MVC

@RequestMapping
public String someMethod(@RequestParam(defaultValue = "some value") String param1)
    // use the request parameters
}

没有它

@RequestMapping
public String someMethod(HttpServletRequest request)
    String param1 = request.getParameter("param1");
    if (param1 == null) {
        param1 = "someValue";
    }
    // use the request parameters
}
 类似资料:
  • 问题内容: 我是laravel的新手,我一直试图将表’student’的所有记录存储到一个变量,然后将该变量传递给视图,以便可以显示它们。 我有一个控制器-ProfileController,里面有一个函数: 我认为我有此代码 我收到此错误:未定义的变量:学生(View:regprofile.blade.php) 问题答案: 你能试试看吗 同时,您可以设置多个类似这样的变量,

  • 问题内容: 所以我有一个控制器设置如下: 管理控制器上的“索引”视图仅列出系统中的产品,并允许我们单击产品以查看/编辑/删除该产品。真的很简单。但是,每个产品都有一个CategoryID,该ID告诉我们该产品属于哪个类别,存储在单独的表中。 (非常简化的)当前视图是这样的: 目前这很好,因为在我开发和测试该系统时,系统中只有10或15种产品,但是一旦我部署它,大约就会有。数据库中有300种产品。我

  • 在我们讨论数据库和数据模型之前,让我们先讨论一下如何将数据从控制器传递给视图。控制器类将响应请求来的URL。控制器类是给您写代码来处理传入请求的地方,并从数据库中检索数据,并最终决定什么类型的返回结果会发送回浏览器。视图模板可以被控制器用来产生格式化过的HTML从而返回给浏览器。 控制器负责给任何数据或者对象提供一个必需的视图模板,用这个视图模板来Render返回给浏览器的HTML。最佳做法是:一

  • 问题内容: 我正在使用Swift,在tableview的didSelectRowAtIndexPath方法中出现错误。我想将值传递给另一个视图控制器,即“ secondViewController”。这里,EmployeesId是一个数组。相关代码如下: 但是我收到此错误:致命错误:展开一个Optional值时意外发现nil。 任何帮助将不胜感激。 问题答案: 这是一个有两个假设的一般解决方案。首

  • 我有一个mvc视图和一个局部视图。控制器中有一个ActionResult方法,它将返回一个PartialView。所以,我需要将ViewBag数据从ActionResult方法传递到部分视图。 这是我的控制器 在Index.cshtml视图中 Step1.cshtml局部视图 但是这是行不通的。那么,从viewpack获取数据的正确方法是什么?我想我遵循了错误的方法。请指导我。

  • 我做了逻辑包,但是UI仍然有问题。我想做的是允许用户输入作业数量,在下一个窗口中,我想显示文本字段,他可以在其中输入每个作业的执行时间,换句话说,我应该显示文本字段n time,作为用户给定的作业数量。 这是我为第一个界面所做的: 这是我的控制器: 我不知道是否有方法将参数从控制器传递到FXML文件,并在FXML中执行循环。。请帮忙