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

带多个下拉菜单的Spring MVC表单的出库处理

农存
2023-03-14

我有一个有两个下拉菜单的表单来选择一个学生和一个学生将要修的课程。当我用这个表单加载页面时,我会得到我将在下面包含的错误。

这是我的jsp表单。

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@include file="header.jsp"%>
<p>
<h2>Assign a Student to a Course</h2>
<br />
<form:form method="POST" action="/myApp/assignStudent">
<table>
    <tr>
        <th>Student</th>
        <th>Course</th>
    </tr>
    <tr>
        <td>
            <form:select path="studentMap" items="${studentMap}">
            </form:select>
        </td>
        <td>
            <form:select path="courseMap" items="${courseMap}">
            </form:select>
        </td>
    </tr>
    <tr>
        <td align="center" colspan="2"><input type="submit" value="Submit" /></td>
    </tr>
    <tr>
</table>
</form:form>
</p>
<%@include file="footer.jsp"%>
@RequestMapping(value = "/assignStudent", method = RequestMethod.GET)
public ModelAndView enrollInCourse()
{
    Map<Integer, String> studentMap = new HashMap<Integer, String>();

    //Create a map to put into the student dropdown menu
    for (Student s : studentDAO.allStudents())
    {
        String fullName = s.getFirstName() + " " + s.getLastName();

        studentMap.put(s.getStudentID(), fullName);
    }

    Map<Integer, String> courseMap = new HashMap<Integer, String>();

    //Create a map to put into the course dropdown menu
    for (Course c : courseDAO.allCourses())
    {           
        courseMap.put(c.getCourseID(), c.getCourseName());
    }

    ModelAndView model = new ModelAndView("assignStudent", "command", new StudentCourse());

    model.addObject("studentMap", studentMap);
    model.addObject("courseMap", courseMap);

    return model;
}

以下是我得到的错误消息

HTTP状态500-在第14行处理JSP page/WEB-INF/JSP/AssignStudent.JSP时发生异常

类型异常报告

JasperException:在第14行处理JSP page/web-inf/JSP/assignstudent.JSP时发生异常

 11:    </tr> 
 12:    <tr> 
 13:        <td> 
 14:            <form:select path="studentMap" items="${studentMap}"> 
 15:            </form:select> 
 16:        </td>
 17:        <td>

StackTrace:org.apache.jasper.servlet.jspServletwrapper.handlejspException(jspServletwrapper.java:568)org.apache.jasper.servlet.jspServletrapper.service(jspServletwrapper.java:470)org.apache.jasper.servlet.jspServlet.servicejjspfile(jspServlet.java:396)org.apache.jasper.server.jspServlet.service(jspServlet.java:340)javax.servet.http.httpservlet.service(.java:877)org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:966)org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:857)javax.servlet.service(httpservlet.java:618)org.springframework.web.servlet.frameworkservet.service(frameworkservlet.java:842)javax.servet.service(

我对Spring MVC还是个新手,所以我很感谢你的建议!

共有1个答案

扶高歌
2023-03-14

您没有显示StudentCourse类,但根据根异常显示

org.springframework.beans.NotReadablePropertyException: Invalid property 'studentMap' of bean class [com.myapp.StudentCourse]: Bean property 'studentMap' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? 

您的StudentCourse类没有studentMap属性,或者缺少它的setter或者它的名称与SetStudentMap不同,因此解决方案是将studentMap属性添加到您的类中,并按照适当的命名规则(SetStudentMapGetStudentMap)编写setter和getter。

但是,如果您不希望在StudentCourse类中有studentMap属性,则可以使用公共ModelAndView(View View,java.util.Map model)构造函数,并将其传递给StudentCourse、studentMap和courseMap对象。

 类似资料:
  • 弹出菜单是可触发的、上下文叠加显示链接列表和别的内容。它们可以与Bootstrap内置的弹出菜单JavaScript插件交互。它通过点击触发,而不是通过鼠标悬停悬浮。这是一个故意设计决策。 示例 把弹出菜单的触发器以及弹出菜单包裹在一个.dropdown中,或者其它声明了position:relative;的元素中。然后,添加菜单的HTML。 <div class="dropdown open">

  • 问题内容: 好的,所以我需要的很简单。 我已经在导航栏中设置了一些下拉菜单(使用),并且工作正常。 问题是它可以工作“ ”,而我希望它可以工作“ ”。 有内置的方法吗? 问题答案: 最简单的解决方案是使用CSS。添加类似…

  • 本文向大家介绍BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案,包括了BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案的使用技巧和注意事项,需要的朋友参考一下 最近学到Bootstrap下拉菜单,学懂了教程内容之后自己敲一个点击按钮底下弹出下拉菜单的小demo,写完代码发现运行之后点击按钮没反应,下拉菜单弹不出来,对照教程感觉代码没错

  • 本文向大家介绍Bootstrap3多级下拉菜单,包括了Bootstrap3多级下拉菜单的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Bootstrap下拉菜单的具体代码,供大家参考,具体内容如下 效果图: - 需要引用bootstrap.min.css和bootstrap.min.css.js - 代码如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教

  • 问题内容: 我已经尝试了大约一周的时间,以找出使用selenium2的下拉菜单。这是我正在使用ITA Matrix 2(http://matrix.itasoftware.com/)自动进行航班搜索的一个项目。一切正常,除了从下拉菜单中选择乘客人数。单击它可以正常工作,但是尝试向其发送键或箭头命令,以及尝试在弹出时创建的新ID都不会执行任何操作。感谢您的帮助!(我是python的新手,我正在做这个

  • 问题内容: 通过使用twitter bootstrap 2的元素,可以有一个多级下拉菜单吗?原始版本没有此功能。 问题答案: 更新的答案 更新了支持v2.1.1 *引导程序版本样式表的答案。 **但是请小心,因为此解决方案已从v3中删除 只是想指出一点,因为最新的引导程序现在默认支持多级下拉菜单,因此不再需要此解决方案。如果您使用的是旧版本,则仍然可以使用它,但对于那些已更新到最新版本(在撰写本文