2016-12-04 99 views
0

因此,標題說出於某種原因。查詢的輸出沒有顯示出來。 你開始在這個JSP輸入標題,點擊按鈕:Struts-Hibernate,標準查詢的輸出沒有出現

<h3><s:form action="aniDelHits"> 
     <s:textfield name="title" label="Title" value=""/> 
     <table border="0"> 
      <tr> 
     <th><s:submit cssClass="btn red" value="Delete" name="btn"/> 
     </s:form></th> 
    <th><s:form action="homepage"> 
     <s:submit cssClass="btn yellow" value="Back" name="btn"/> 
     </s:form></th> 
      </tr> 
      </table> 
    </h3> 

,然後是JSP帶來的是投入支柱:

<action name="aniDelHits" class="AniAction" method="executeDelHits"> 
     <result name="success" type="redirect">deletehits.jsp</result> 
     <result name="error" type="redirect">error2.jsp</result> 
    </action> 

支柱然後將其重定向到行動:

public String executeDelHits(){ 
    animes = dao.hitsAnime(title); 
    Iterator iterator = animes.iterator(); 
     if(iterator.hasNext()){  
      return SUCCESS;  
     }else{ 
      return ERROR; 
      } 

該操作要求DAO:

public List<Anime> hitsAnime(String title){ 
    List<Anime> animes = new ArrayList<Anime>(); 

    session = getSession(); 
    tx = session.beginTransaction(); 
    Query qry=session.createQuery("FROM Anime WHERE lower(ANI_TITLE) LIKE lower(:title)"); 
    qry.setString("title", "%"+ title +"%"); 
    animes=qry.list(); 
    //Criteria cr = session.createCriteria(Anime.class).add(Restrictions.ilike("aniTitle", title)); 
    //animes = cr.list(); 
    tx.commit(); 
    return animes;   
    } 

請注意,我評論了查詢的Criteria版本。 一旦驗證它是成功的,它重定向並應輸出的查詢列表的進入這個JSP表中的值:

<h2>Showing HITS for inputted value:</h2> 
    <table border="1"> 
     <tr> 

      <th><font>Title</font></th> 
      <th><font>Studio</font></th> 
      <th><font>Release</font></th> 
     </tr>  
     <s:iterator value="animes"> 
     <tr> 

      <td><s:property value="aniTitle"/></td> 
      <td><s:property value="aniStudio"/></td> 
      <td><s:property value="aniEpi"/></td> 
     </tr> 
     </s:iterator>   
</table> 
      <s:form action="homepage"> 
      <s:submit cssClass="btn yellow" value="Back" name="btn"/> 
      </s:form> 
    </center> 

因爲我有一個錯誤處理程序,它應該將用戶重定向到錯誤頁面如果遇到查詢錯誤,SQLException或NullPointer。但它沒有顯示錯誤頁面,並進入成功頁面顯示一個沒有值的表格。

這意味着查詢成功執行(糾正我,如果我錯了),但它只是沒有顯示輸出。

+0

你所說的錯誤處理程序意思?你是否在'struts.xml'中配置了它? –

+0

是的。如果你檢查下面的答案,你會看到我的錯誤和修復(它重定向頁面,而不是從DAO轉發值)。 – Xenos29

+0

在下面的答案中,我沒有看到錯誤處理程序的配置,也沒有看到上述問題。 –

回答

0

通過固定的struts.xml變更爲解決:

<action name="aniDelHits" class="AniAction" method="executeDelHits"> 
     <result name="success" >deletehits.jsp</result> 
     <result name="error" >error2.jsp</result> 
    </action> 

刪除類型=重定向

+0

不要忘記將答案標記爲已接受的答案。 –