因此,標題說出於某種原因。查詢的輸出沒有顯示出來。 你開始在這個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。但它沒有顯示錯誤頁面,並進入成功頁面顯示一個沒有值的表格。
這意味着查詢成功執行(糾正我,如果我錯了),但它只是沒有顯示輸出。
你所說的錯誤處理程序意思?你是否在'struts.xml'中配置了它? –
是的。如果你檢查下面的答案,你會看到我的錯誤和修復(它重定向頁面,而不是從DAO轉發值)。 – Xenos29
在下面的答案中,我沒有看到錯誤處理程序的配置,也沒有看到上述問題。 –