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
Post a Comment