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

如何在JSP中获取动态下拉框

胥康安
2023-03-14

我想在Spring MVC中填充一个下拉框,我试图这样做,但是我得到了空指针异常

这是我的控制器:

public class CatalogueController  {
private CatalogueService catalogueService;
private PublisherService publisherService;
private SubjectService subjectService; 

   // some code and i generated setter and getter methods  
   ............

 @RequestMapping(value="/catalogue/new.action", method=RequestMethod.GET)  
   public ModelAndView newMember() throws Exception {
    ModelAndView mvc= null;
    mvc =   new ModelAndView("catalogue/catalogueForm", "catalogueForm", new CatalogueBase());
    mvc.addObject("copyDetailForm", new CatalogueCopyDetails());

    List<Publisher> publist = publisherService.getPublisherList();
    mvc.addObject("publist", publist);

    List<Subject> subjectlist = subjectService.getSubjectList();
    mvc.addObject("subjectlist", subjectlist);

    return mvc;
}  

这是我的服务方法:

    @Override
public List<Publisher> getPublisherList() {
    List<Publisher> list = publisherDAO.getPublisher();
    return list;
}
    @Override
public List<Subject> getSubjectList() {
    List<Subject> list = subjectDAO.getSubjects();
    return list;
}

这是我的 DAO 方法:

    @SuppressWarnings("unchecked")
public List<Publisher> getPublisher() {
      Query qry = getSession().createQuery("from Publisher");
        return qry.list();
}
    @SuppressWarnings("unchecked")
public List<Subject> getSubjects() {
      Query qry = getSession().createQuery("from Subject");
        return qry.list();
}

最后这是我的JSP页面:

  <form:form commandname="catalogueForm"    action="${pageContext.request.contextPath}/catalogue/create.action" method="post" modelAttribute="catalogueForm">

    <form:select path="publisher.id" id="publisher.id">
    <form:options items="${publist}" itemValue="id" itemLabel="name" />
    </form:select>                                                        

    <form:select path="subject.id" id="subject.id">                            
    <form:options items="${subjectlist}" itemValue="id" itemLabel="name" />
    </form:select>

   </form:form>

这是堆栈跟踪:

sun.reflect.NativeMethodAccessorImpl上com.easylib.elibrary.webapp.controller.catalog.CatalogueController.newMember(catalogue controller.java:80)处的java.lang.NullPointerException。位于org.springframework.web.Method.support.InvocleHandlerMethod.invoke(InvocableHandlerMathod.java:219)的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于sun.refreve.NativeMethodAccess的invoke0org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMathod.java:132位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMapbingHandler Adapter.java:565),位于org.s普林framework.jeb.servlet.doDispatch(DispatcherServlet.java:923)

共有1个答案

鲜于俊侠
2023-03-14

你在控制器的第80行得到npe,但是我看不到你问题中的哪一行。

我猜想您没有正确连接服务,“publisherService”或“subjectService”为空。

 类似资料:
  • 我想有一个下拉列表,当我改变第一个下拉列表时会改变。我确信我的servlet是正确的,因为它返回我需要的值,但是我的servlet不运行。当我调试时,它不会碰到servlet中的断点。 我想这与我的JavaScript有关。 以下是JSP文件: 这是javascript文件 servlet是可以的,我确信这一点,所以没有必要把它放在这里。

  • 我正在尝试填充一个下拉菜单。第二个和第三个下拉列表应显示根据先前选择的下拉值从数据库检索后的值。你能指出我代码中的错误吗。当我运行代码时,我无法在任何下拉列表中选择任何值。请帮帮我<乡村。jsp 状态jsp City.jsp几乎和state.jsp一样 我已经在数据库中添加了值。提前谢谢

  • Im使用VBA代码创建多个选择下拉列表。该代码将使目标单元格中的每个下拉列表变成多重选择列表,函数为: 目标单元格中下拉列表的来源是,b14是另一个下拉列表(单选)。现在,如果b14的值将变成list1,我想让目标的单元格列表变成多个选择列表。在任何其他情况下,我希望它工作在正常的excel方式。我尝试用来precaphy列表源,但是我得到了的不匹配错误。我怎么做?

  • 问题内容: 我将selenium1的代码转换为selenium2,找不到在下拉菜单中选择标签或获得下拉菜单的选定值的简便方法。您知道在Selenium 2中如何做吗? 这是两个在Selenium 1中起作用但不在2中起作用的语句: 问题答案: 查看硒文档中有关使用webdriver 填写表单的部分以及Select类的javadoc 。 要基于标签选择一个选项: 要获得第一个选定的值:

  • MVC模式:servlet JSP页面。我有一个(基本)外观的class

  • 日安。我有一个JSP视图和一个控制器,这为它提供了一个要填充的模型。下面是我的控制器的JSP方法。 gridRows包含在JSP中必须插入到表中的信息。该表中的一列是“status”。状态必须是下拉框,才能更改此行的状态。 下面是我的JSP: 如何在JSP中创建下拉框,以及如何为每一行选择当前值?