2014-10-28 16 views
0

我已經使用JSTL在下拉列表中填充了ArrayList()數據。當我試圖用getter方法'指定'(一個提交的數據庫值)來設置bean的值時。發生異常。 您的建議請。 在此先感謝... !!如何使用JSTL從數據庫中設置下拉列表中的值

的Servlet屬性

 request.setAttribute("RESULT2", lDesignation); 

JSTL標籤

 <jsp:useBean id="userprofile" class= "com.package.dao.UserProfile" scope="request"/> 
     <jsp:setProperty name="userprofile" property="*" /> 

     <strong>Designation</strong>: 

     <select id="designate" name="designate"> 
       <option value="desigType">Select Designation</option> 
     <c:forEach var="desig" items="${RESULT2}"> 
       <option value="${desig.key}" ${desig.key == ${userprofile.designate ? 'selected="selected"' : ''}>${desig.value}</option> 
     </c:forEach> 

     </select> <br> 

異常

javax.el.PropertyNotFoundException: Property 'key' not found on type java.lang.String 
     at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:266) 
     at javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:243) 
     at javax.el.BeanELResolver.property(BeanELResolver.java:353) 
     at javax.el.BeanELResolver.getValue(BeanELResolver.java:97) 
     at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104) 
     at org.apache.el.parser.AstValue.getValue(AstValue.java:183) 
     at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184) 
     atorg.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:967) 
     at org.apache.jsp.home_jsp._jspx_meth_c_005fforEach_005f0(home_jsp.java:510) 
     at org.apache.jsp.home_jsp._jspService(home_jsp.java:279) 
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) 
     atorg.apache.jasper.JasperException: An exception occurred processing JSP page /home.jsp at line 158 

    155:   <strong>Designation</strong>: <select id="designate" name="designate"> 
    156:     <option value="desigType">Select Designation</option> 
    157:    <c:forEach var="desig" items="${RESULT2}"> 
    158:     <option value="${desig.key}" ${desig.key == ${userprofile.designate ? 'selected="selected"' : ''}>${desig.value}</option> 
    159:    </c:forEach> 
    160:     
    161:    </select> <br> 
+0

你在想什麼?請詳細說明你的問題,你是否試圖設置值的請求? – 2014-10-28 09:58:25

+0

@SanKrish所有我期望從數據庫中的一組值來填充JSTL(JSP) 中提供的列表,但我找到了答案並在下面發佈。 – randxy 2014-10-28 11:08:15

+0

結果2是什麼? ArrayList或HashMap – kirti 2014-10-31 14:38:49

回答

0

實測值由s答案將bean的值設置爲一個變量,並檢查foreach循環中的條件。

 <strong>Designation</strong>: 
      <select id="designate" name="designate"> 
       <option value="desigType">Select Designation</option> 
       <option value="${selectedDesig}" selected>${selectedDesig}</option> 
        <c:forEach var="designate" items="${RESULT2}"> 
         <c:if test="${designate != selectedDesig}"> 
          <option value="${designate}">${designate}</option> 
         </c:if> 
        </c:forEach> 
      </select> <br> 
相關問題