2016-12-04 4 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;   
    } 

Обратите внимание, что я прокомментировал версию запроса Query. Как только он проверяет его как успех, он перенаправляет И вывод должен значения списка запросов в таблицу в этой 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

Не забудьте отметить свой ответ в качестве принятого ответа. –