java - 尝试通过 JSTL 表单标签提交表单时收到 bean 类的错误 "Invalid property ' xxx'

标签 java spring jsp jstl

我正在尝试构建一个简单的 Spring 项目,用户可以在其中通过表单搜索数据库。如果我使用常规表单输入,它会完美运行,但如果我尝试使用 JSTL 表单标签,它就会崩溃。任何帮助将不胜感激

JSP:

<form:form action="/search" method="post" modelAttribute="music">
        <form:label path="artist">Artist</form:label>
        <form:errors path="artist"/>
        <form:input path="artist"/>
    <input type="submit" value="Submit"/>

Controller :

    @RequestMapping(value="/search", method=RequestMethod.POST)
        public String search(@RequestParam(value="artist") String search, Model model) {
        List<Music> results = musicService.findArtist(search);
        model.addAttribute("search", search);
        model.addAttribute("results", results);
        return "music/search.jsp";
    }

服务:

    public List<Music> findArtist(String search){
        return musicRepository.findByArtistContaining(search);
    }

仓库:

List<Music> findByArtistContaining(String search);

真的不确定我做错了什么,但我确信我以某种方式弄乱了 JSP 代码。我只想通过 repo 方法 findByArtistContaining 从数据库中提取结果

我在尝试访问时收到的错误是:

Invalid property 'artist' of bean class [java.util.ArrayList]: Bean property 'artist' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?

最佳答案

抱歉晚了,但我认为这不起作用,因为请求参数与您尝试将其映射到的字符串名称不匹配,如此处所述;

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html

因此更改为以下内容应该可行;

@RequestParam(name="artist") String artist,

关于java - 尝试通过 JSTL 表单标签提交表单时收到 bean 类的错误 "Invalid property ' xxx',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56607225/

相关文章:

jsp - JSP中的编码问题

java - 在 thymeleaf 中使用 <ol> 和 <li> 元素呈现组合列表

JavaFX 制作自定义组件的可滚动列表

java - Spring:根据 View 重定向

java - Apache Struts 项目中未使用的文件

javascript - 如何使用 javascript 验证 jsp 表单(提交时)中的多个文本框?

java - 谁能给我推荐一个好的库来在 java/scala 中应用机器学习?

java - JNA beep() 找不到符号?

json - Spring MVC JSON 生产者在某些情况下花费的时间太长

java - Spring 的Aspectj