java - Spring MVC interpretting object binding as string -


i trying create spring form dropdown of user's reports, jsp page interpreting object binding string. have been struggling while , using inline script print results instead, prefer using object binding.

view.jsp

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <%@page     import="com.cognos.developer.schemas.bibus._3.report, java.util.*"%>   <form:form method="post" modelattribute="reportview" action="">         <form:label path="defaultname.value">name</form:label>         <form:input path="defaultname.value"/><br/>         <form:label path="base">report name</form:label>         <form:select path="base">         <form:options items="${reports}" itemvalue="defaultname" itemlabel="defaultname" />         <%             //list<report> reportlist = (list)request.getattribute("reports");             //for (report r : reportlist) {             //  out.print("<option value=");             //  out.print(r);             //  out.println(">" + r +"</option>");             //}         %>         </form:select>         <form:label path="disabled.value">disabled?</form:label>         <form:checkbox path="disabled.value"/>         <form:hidden path="searchpath.value" />         <div class="input-group-btn">             <input class="btn btn-default" type="submit" value="update" />         </div>     </form:form> 

controller.java

import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse;  import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.controller; import org.springframework.validation.bindingresult; import org.springframework.validation.annotation.validated; import org.springframework.web.bind.annotation.modelattribute; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestmethod; import org.springframework.web.bind.annotation.requestparam; //import org.springframework.web.servlet.modelandview; import static org.springframework.web.bind.annotation.requestmethod.get;  import com.cognos.developer.schemas.bibus._3.report;   @requestmapping(value="/new", method=get) public string newview (@requestparam("usr")string usr, map<string, object> model) {     //public string newview(){     cognos.checkconfig();     cognos.connecttocognos();      cognos.logontocognosasusr(usr);     reportview rv = new reportview();     model.put("reportview", rv);     map<string, string> map = new hashmap<string, string>();     map.put("still not", "work");     model.put("reports", map);     //model.put("reports", cognos.fetchreports());     cognos.logofffromcognos();     return "new_view"; } 

cognosservice.java

public map<string, report> fetchreports() {         baseclass bc[] = null;         string searchpath = "/content//report";         list<report> rtn = new arraylist<report>();         try {             searchpathmultipleobject spmulti =                     new searchpathmultipleobject(searchpath);             bc = cmservice.query(spmulti, props, new sort[] {}, new queryoptions());         } catch (exception e) {             e.printstacktrace();         }         if (bc != null) {             (int = 0; < bc.length; i++) {                 report r = (report)bc[i];                 rtn.add(r);              }         }         collections.sort(rtn, new reportcomparator());         (report rp : rtn){             reportlist.put(rp.getstoreid().getvalue().tostring(), rp);         }         return reportlist;     } 

web.xml

<!doctype web-app public  "-//sun microsystems, inc.//dtd web application 2.3//en"  "http://java.sun.com/dtd/web-app_2_3.dtd" >  <web-app>      <display-name>report scheduler</display-name>     <servlet>         <servlet-name>views</servlet-name>         <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class>         <load-on-startup>1</load-on-startup>     </servlet>      <servlet-mapping>         <servlet-name>views</servlet-name>         <url-pattern>/</url-pattern>     </servlet-mapping>     <welcome-file-list>         <welcome-file>views/index.jsp</welcome-file>     </welcome-file-list> </web-app> 

views-servlet.xml

<?xml version="1.0" encoding="utf-8" ?>  <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"  xsi:schemalocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">  <mvc:annotation-driven /> <context:component-scan base-package="com.enernoc.reporting.reportscheduler" />  <!-- <mvc:resources mapping="/resources/**" location="/resources/" /> --> <bean class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="viewclass" value="org.springframework.web.servlet.view.jstlview" /> <property name="prefix"> <value>/views/</value> </property> <property name="suffix" value=".jsp" /> </bean>  </beans> 

stacktrace

org.apache.jasper.jasperexception: exception occurred processing jsp page /views/new_view.jsp @ line 13  10:         <form:input path="defaultname.value"/><br/> 11:         <form:label path="base">report name</form:label> 12:         <form:select path="base"> 13:         <form:options items="${reports}" itemvalue="defaultname" itemlabel="defaultname" /> 14:         </form:select> 15:         <form:label path="disabled.value">disabled?</form:label> 16:         <form:checkbox path="disabled.value"/>   stacktrace:     org.apache.jasper.servlet.jspservletwrapper.handlejspexception(jspservletwrapper.java:568)     org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:455)     org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:390)     org.apache.jasper.servlet.jspservlet.service(jspservlet.java:334)     javax.servlet.http.httpservlet.service(httpservlet.java:728)     org.springframework.web.servlet.view.internalresourceview.rendermergedoutputmodel(internalresourceview.java:168)     org.springframework.web.servlet.view.abstractview.render(abstractview.java:303)     org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:1228)     org.springframework.web.servlet.dispatcherservlet.processdispatchresult(dispatcherservlet.java:1011)     org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:955)     org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:877)     org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:966)     org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:857)     javax.servlet.http.httpservlet.service(httpservlet.java:621)     org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:842)     javax.servlet.http.httpservlet.service(httpservlet.java:728) root cause  javax.servlet.servletexception: javax.servlet.jsp.jspexception: type [java.lang.string] not valid option items     org.apache.jasper.runtime.pagecontextimpl.dohandlepageexception(pagecontextimpl.java:912)     org.apache.jasper.runtime.pagecontextimpl.handlepageexception(pagecontextimpl.java:841)     org.apache.jsp.views.new_005fview_jsp._jspservice(new_005fview_jsp.java:103)     org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70)     javax.servlet.http.httpservlet.service(httpservlet.java:728)     org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:432)     org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:390)     org.apache.jasper.servlet.jspservlet.service(jspservlet.java:334)     javax.servlet.http.httpservlet.service(httpservlet.java:728)     org.springframework.web.servlet.view.internalresourceview.rendermergedoutputmodel(internalresourceview.java:168)     org.springframework.web.servlet.view.abstractview.render(abstractview.java:303)     org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:1228)     org.springframework.web.servlet.dispatcherservlet.processdispatchresult(dispatcherservlet.java:1011)     org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:955)     org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:877)     org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:966)     org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:857)     javax.servlet.http.httpservlet.service(httpservlet.java:621)     org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:842)     javax.servlet.http.httpservlet.service(httpservlet.java:728) root cause  javax.servlet.jsp.jspexception: type [java.lang.string] not valid option items     org.springframework.web.servlet.tags.form.optionwriter.writeoptions(optionwriter.java:143)     org.springframework.web.servlet.tags.form.optionstag.writetagcontent(optionstag.java:157)     org.springframework.web.servlet.tags.form.abstractformtag.dostarttaginternal(abstractformtag.java:84)     org.springframework.web.servlet.tags.requestcontextawaretag.dostarttag(requestcontextawaretag.java:80)     org.apache.jsp.views.new_005fview_jsp._jspx_meth_form_005foptions_005f0(new_005fview_jsp.java:335)     org.apache.jsp.views.new_005fview_jsp._jspx_meth_form_005fselect_005f0(new_005fview_jsp.java:296)     org.apache.jsp.views.new_005fview_jsp._jspx_meth_form_005fform_005f0(new_005fview_jsp.java:144)     org.apache.jsp.views.new_005fview_jsp._jspservice(new_005fview_jsp.java:93)     org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70)     javax.servlet.http.httpservlet.service(httpservlet.java:728)     org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:432)     org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:390)     org.apache.jasper.servlet.jspservlet.service(jspservlet.java:334)     javax.servlet.http.httpservlet.service(httpservlet.java:728)     org.springframework.web.servlet.view.internalresourceview.rendermergedoutputmodel(internalresourceview.java:168)     org.springframework.web.servlet.view.abstractview.render(abstractview.java:303)     org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:1228)     org.springframework.web.servlet.dispatcherservlet.processdispatchresult(dispatcherservlet.java:1011)     org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:955)     org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:877)     org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:966)     org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:857)     javax.servlet.http.httpservlet.service(httpservlet.java:621)     org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:842)     javax.servlet.http.httpservlet.service(httpservlet.java:728) 

i can not comment due lack of reputation.
return value of cognos.getreportslist in model.put("reports", cognos.getreportslist); if map key value works.


Comments