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

如何在Spring中将数据从控制器传递到前端

苏鸿志
2023-03-14

我是spring的新手,在spring3中创建了一个应用程序。0我正在使用注释spring。

我想从我的控制器方法返回列表到jsp。列表将显示在选择框中。以下是控制器和jsp部分的代码。请帮助我理解这一点。

public String showUserForm(ModelMap model)  
{       
  User user = new User();
  model.addAttribute(user);
  List<String> lookingfor=service.getOptions();
  //want to send this "lookingfor" to the jsp       
  return "welcome";     
}

和JSP

<td>    
  <form:select path="lookingfor">
  <form:option value="0" label="Select" /> 
  <form:options items="${lookingfor}" itemValue="lookingfor" itemLabel="lookingfor" />                 </form:select>           
</td>

在模型中添加用户时,它工作正常,但是当我添加lookingfor属性时。model.add属性(“lookingfor”,lookingfor);

这是一个错误。

严重:Servlet。servlet jsp的service()引发了异常组织。springframework。豆。NotReadablePropertyException:bean类[java.lang.String]的属性'lookin gfor'无效:bean属性'lookingfor'不可读或具有无效的getter方法:getter的返回类型是否与setter的参数类型匹配?

共有3个答案

傅自明
2023-03-14

你也可以这样使用

@RequestMapping("get_vendor_tests.htm")
    public ModelAndView getVendorTests(@RequestParam int vendorId,Map<String, Object> map){
        try {
            map.put("vendor", vendorService.getVendor(vendorId));
            return new ModelAndView("vendor_tests","message",map);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            //e.printStackTrace();
            logger.error("In vendor tests for vendor Id:"+vendorId+"",e);
            return new ModelAndView("error","message", e);
        }

    }
陆昕
2023-03-14

您也可以返回ModelAndView

例如

public ModelAndView showUserForm()  
{  
  mv= new ModelAndView("welcome");     
  User user = new User();
  mv.getModel.put("user",user);
  List<String> lookingfor=service.getOptions();
  //want to send this "lookingfor" to the jsp 
  mv.getModel().put("lookingfor",lookingfor);      
  return mv;     
}

编辑:为了回应下面的评论,请查看itemValue,这应该是lookingfor对象的属性之一。请参见此国家/地区列表示例

 <form:options items="${countryList}" itemValue="code" itemLabel="name"/>

其中list是国家对象的列表代码和名称是国家对象的属性

编辑2

所以,就这么做吧

<c:forEach var="item" items="${lookingfor}">
 <form:option value="${item}"/>
</c:forEach>
汤跃
2023-03-14

必须将lookingFor列表作为属性添加到ModelMap对象中:

model.addAttribute("lookingfor", lookingfor);

还要验证属性“itemValue”和“itemLabel”的使用情况,因为itemValue和itemLabel都指的是lookingFor列表项的属性。您在两者上使用了相同的值,这是错误的。

 类似资料:
  • 假设我在jsp中有这个表单 和Person类 编辑:控制器实现 我没有问题调用其他方法,但测试。

  • 我在建一个拉威尔的网站。我希望提交的表单数据运行查询,并将结果插入表格式。我正在使用oracle DB,并已将其连接到Laravel。另外,我已经创建了表单,查询结果正确。我不能做的是将结果成功地传递到表中。 我的文件如下: > Routes.php(或web.php较新的laravel版本): 搜索。刀身php(带有post方法的表单) 我的控制器(NewController.php)运行查询。

  • 问题内容: 我的图像是我试图将数据(变量)从一个阶段传递到另一阶段,但是当我尝试在第二阶段访问它们时,它们为空。mainWindow的代码。前往window1 // window1类: 如果我想访问以前收到的标题,则为null 初始化显示应该为“ Window1”时显示为null} 问题答案: 在加载FXML文件的过程中,将调用该方法-换句话说,在调用时将调用该方法。 显然,这是 在 调用 之前

  • 我在这里遵循Spring MVC教程:http://www.tutorialspoint.com/spring/spring_mvc_form_handling_example.htm我也不明白数据是如何从JSP传递到控制器的。 我想我理解数据是如何从控制器传递到JSP的,但是在用户在JSP上编辑表单之后,数据是如何传递到控制器的呢? 在控制器中:公共字符串addStudent(@ModelAtt

  • 我的控制器代码: 但不管用。

  • 我的问题:有一个简单的超文本标记语言表单,操作="/myController"。我需要将表单数据发送到我的控制器,然后从那里我需要向外部控制器发送另一个POST。 我的Spring控制器看起来像这样: 我需要将表单数据传递给我的控制器,它应该将表单数据进一步发送到“urlPath”并接收响应。我需要操纵这个响应并返回一个结果。我的问题是,如何在不操纵请求的情况下进一步发送表单数据? 提前感谢。