2016-07-19 72 views
0

我使用Spring MVC Hibernate,我從數據庫檢索區和塊。區已成功顯示,但當涉及到塊我無法顯示它們時,會出現什麼問題?請幫助AJAX調用,它返回不可接受使用SPRING MVC休眠

$(document).ready(function() 
 
     { 
 
      $('#districtcode').change(function() 
 
      { 
 
      
 
       $.ajax({   
 
        type: "POST", 
 
        url: "./districtenrollment.htm", 
 
        data: "categoryCode="+ this.value, 
 
         
 
        success : function (data){ 
 
        
 
         $('#blockcode').empty();        
 
         $('#blockcode').append($("<option>").val("-1").text("Select"));     
 
         for (var i = 0; i < data.length; i++) { 
 
          $('#blockcode').append($("<option>").val(data[i][1]).text(data[i][0])); 
 
         } 
 
        }, 
 
        error: function(jqXHR, textStatus, errorThrown) { 
 
         alert("error:" + textStatus + " - exception:" + errorThrown);   
 
        } 
 
       }); 
 
        
 
      }); 
 
     });
<form:form method="POST" modelAttribute="disblo" autocomplete="off" > 
 
      <h3 id="heading"><u>Please Select</u></h3> 
 
      <table id="tab"> 
 
       <tr> 
 
        <td> 
 
         User Id: 
 
        </td> 
 
        <td> 
 
         <form:input path="myid"/> 
 
        </td> 
 
       </tr> 
 
       <tr> 
 
        <td> 
 
         User name: 
 
        </td> 
 
        <td> 
 
         <form:input path="username"/> 
 
        </td> 
 
       </tr> 
 
       <tr> 
 
        <td>Select District</td> 
 
        <td> 
 
         <form:select path="mDistricts.districtcode" id="districtcode">       
 
          <form:option value="-1">Select </form:option> 
 
          <c:forEach var="c" items="${districtlist}">          
 
           <form:option value="${c.districtcode}" >${c.districtname} 
 
           </form:option> 
 
          </c:forEach> 
 
         </form:select> 
 
        </td> 
 
       </tr> 
 
       <tr> 
 
        <td>Select Block</td> 
 
        <td> 
 
         <form:select path="mBlocks.blockcode" id="blockcode">       
 
          <form:option value="-1">Select </form:option> 
 
          <c:forEach var="c" items="${blocklist}">          
 
           <form:option value="${c.blockcode}" >${c.blockname} 
 
           </form:option> 
 
          </c:forEach> 
 
         </form:select> 
 
        </td> 
 
       </tr> 
 

 
      </table> 
 
     </form:form>

`

這是我的控制器

@Autowired 
    private D_BDAO d_bdao; 

    @RequestMapping(value="Dist_Block.htm", method = RequestMethod.GET) 
    public ModelAndView getmodel(@ModelAttribute("disblo") usertestDisBlock db, HttpSession session) { 
     List<MDistricts> districtlist = d_bdao.getAllCategory(); 
     org.springframework.web.servlet.ModelAndView model = new org.springframework.web.servlet.ModelAndView("Dist_Block"); 
     model.addObject("districtlist", districtlist); 
     System.out.println("after model"); 
     return model; 
    } 

    @RequestMapping(value = "/districtenrollment.htm", method = RequestMethod.POST) 
    public @ResponseBody 
    List<MBlocks> getmodel1(@RequestParam("categoryCode") Integer categoryCode) { 
     System.out.println("categoryCode="+categoryCode); 
     List<MBlocks> blocklist; 
     System.out.println("i'm here in ajax controller "); 
     blocklist = d_bdao.getAllBlocks(categoryCode); 
     System.out.println("i'm here after b_dao "); 
     System.out.println("c " + blocklist); 
     return blocklist; 
    } 

這是我的DAO實現

@Override 
    public List<MDistricts> getAllCategory() { 
     org.hibernate.Session session = sessionFactory.openSession(); 
     session.beginTransaction(); 
     String hql = "from MDistricts"; 
     Query query = session.createQuery(hql); 
     List<MDistricts> districtlist = query.list(); 
     session.close(); 
     return districtlist; 
    } 

    @Override 
    public List<MBlocks> getAllBlocks(Integer districtcode) { 
     org.hibernate.Session session = sessionFactory.openSession(); 
     session.beginTransaction(); 
     SQLQuery q = session.createSQLQuery("select blockname, blockcode from test_schema.m_blocks where districtcode=:districtcode ORDER BY blockname"); 
     q.setParameter("districtcode", districtcode); 
     List<MBlocks> blocklist = q.list(); 
     session.close(); 
     System.out.println("blocklist" + blocklist); 
     return blocklist; 
    } 
+0

請添加代碼。 –

+0

是的,我已經重新編輯我的帖子。在此先感謝v.ladynev –

+0

謝謝Usman Maqbool –

回答

0

我不是一個心靈感應器。但是我可以做一個假設(因爲你沒有提供足夠的信息:錯誤堆棧跟蹤,實體類)。

此代碼是不正確

SQLQuery q = session.createSQLQuery("select blockname, blockcode from test_schema.m_blocks where districtcode=:districtcode ORDER BY blockname"); 
q.setParameter("districtcode", districtcode); 
List<MBlocks> blocklist = q.list(); 

session.createSQLQuery()不返回List<MBlocks>,但List<Object[]>。試用HQL代碼:

Query q = session.createQuery(
    "from MBlocks where districtcode = :districtcode order by blockname"); 
q.setParameter("districtcode", districtcode); 
List<MBlocks> blocklist = q.list(); 

並嘗試記錄錯誤。

+0

問題已解決。謝謝 –

+0

@ Boss.H不客氣。那麼你用我的答案解決了它? –

+0

不,這是我的問題,像json-simple和json這樣的JQuery和Jar文件都爲我做了這項工作,問題出在了映射中。但是,我想感謝你的支持,保持它:)你想讓我給你解決問題?如果是的話,請給我你的電子郵件ID –