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

Spring MVC下拉框抛出错误

施华奥
2023-03-14

我遵循了这个问题的步骤,但我仍然遇到问题。

我的控制器如下所示…

@RequestMapping(value = "listBooks.htm")
public String goToNextPage(Model model, HttpServletRequest request){

    HashMap<String,Map<String,String>> hashMapOfData = new HashMap<String,Map<String,String>>();

    Map<String,String> m = new LinkedHashMap<String,String>();
    m.put("1", "foo");
    m.put("2", "bar");
    hashMapOfData.put("m", m);
    model.addAttribute("dropdownData", hashMapOfData);
.....
}

我的jsp文件...

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<form:select path="dropdownData"><br />
 <form:option label="Select..." value=""/>
 <form:options items="${dropdownData}" itemLabel="label" itemValue="value"/>
</form:select>

我得到了错误...

org.springframework.beans。NotReadablePropertyException:bean类[java.lang.String]的无效属性“value”:bean属性“value”不可读或具有无效的getter方法:getter的返回类型是否与setter的参数类型匹配

但是如果我把我的jsp文件改成...移除< code > item label = " label " item value = " value "

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<form:select path="dropdownData"><br />
 <form:option label="Select..." value=""/>
 <form:options items="${dropdownData}"/>
</form:select>

页面确实加载,但下拉框选项为

  • 选择。。。
  • {1=傻瓜,2=酒吧}

任何人都可以帮我吗?当涉及到SpringMVC时,我是一个新手,所以非常详细的答案将不胜感激。

共有1个答案

上官波鸿
2023-03-14

错误描述了一切

org.springframework.beans.NotReadablePropertyException: Invalid property 'value' of bean class [java.lang.String]: Bean property 'value' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter

Spring试图在java.lang.String中找到一个价值的获取者,这是不存在的东西。

我只需要使用列表

您最终的jsp将如下所示:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<form:select path="dropdownData"><br />
 <form:option label="Select..." value=""/>
 <form:options items="${dropdownData}" itemLabel="label" itemValue="value"/>
</form:select>

LabelValueModel只是一个简单的POJO,以避免绑定到特定技术:

public class LabelValueModel
{
  private String label;
  private String value;

  ..public getters..
  ..might consider private setters and only allowing setting through constructor..
}

 类似资料:
  • 我正在使用selenium IDE,尝试在下拉菜单中选择选项时收到错误 错误 元素名称=恶化[]未找到556[股份]。 这是有问题的命令吗 这是源代码

  • 我在获取下拉列表的值时遇到了麻烦,我有学生实体和部分实体,它们之间有一个关系船,在jsp中它就像而不是这个在jsp中,我需要获得特定的bean属性名称,如 学生示范班 我的道实现是这样的 像金丝马龙一样。 控制器就像 我对这个问题的最后润色是如何获得指定bean属性名的下拉值(这里我想获得bean属性名称,如)com.chan.Eschool.student.model.Section@26552

  • 各种大小的下拉框 <div class="row"> <div class="field-label">mini</div> <div class="select-size" data-skin="mini"></div> </div> <div class="row"> <div class="field-label">tiny</div> <div class=

  • 问题内容: 如果要选择下拉框的选项,可以通过多种方法进行。我一直使用: 但这并非每次都能奏效。有时选择了另一个选项。所以我在谷歌上搜索了一下,发现这段代码每次都有效: 但这确实非常缓慢。如果我的清单很长,里面有很多物品,那确实需要太多时间。所以我的问题是,有没有一种解决方案可以每次都快速有效? 问题答案: 您可以尝试以下方法:

  • 我正在使用Sprock和Spring,当我嘲弄我的一个组件类时,我得到了错误。 > CGLIB-NODEP:3.2.0 CGLIB:3.2.0 Spock-Core:1.0-groovy-2.4 Spring-测试:4.1.4.释放 java.lang.NoClassDefoundError:无法初始化类org.spockframework.mock.runtime.proxybasedmockf

  • 我试过在Spark中构建包,它会抛出以下错误。命令:sbt包 hduser@hduser-virtualbox:/usr/local/spark-1.1.0-bin-hadoop1/project$cat>simple.sbt name:=“简单项目” scalaVersion:=“2.9.2” libraryDependencies+=“org.apache.spark”%“spark-core