2015-07-07 3 views
0

Здесь я запускаю некоторый запрос .. и он отображает запись, но я хочу, если нет записи, тогда она должна отображать «нет совпадения/результата найдено».
Я использую ArrayList в Struts2. Так могу ли я это достичь? Пожалуйста, если кто-нибудь может внести изменения или предложить что-то, что было бы очень полезно. Я искал решение для этого, но не смог получить соответствующее решение. Ниже я публикую свой класс Action и jsp, на которых я хочу отображать результаты.
Спасибо заранее. :)Как показать «результат не найден» с использованием arraylist в struts2

BookSearchAction.java

package org.entity; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.List; 

import com.opensymphony.xwork2.ActionSupport; 

public class BookSearchAction extends ActionSupport { 

    Book book; 

    List<Book> bookResultList; 

    public Book getBook() { 
     return book; 
    } 

    public void setBook(Book book) { 
     this.book = book; 
    } 

    public List<Book> getBookResultList() { 
     return bookResultList; 
    } 

    public void setBookResultList(List<Book> bookResultList) { 
     this.bookResultList = bookResultList; 
    } 

    public BookSearchAction() { 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public String execute() throws Exception { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection con = DriverManager.getConnection(
        "jdbc:mysql://localhost:3306/staff", "root", "siddheshkk"); 
      System.out.println("Driver Loaded"); 
      Statement stmt = con.createStatement(); 
      ResultSet rs = stmt 
        .executeQuery("select * from books12 where name like '%" 
          + book.getBookName() + "%'"); 
      bookResultList = new ArrayList<Book>(); 
      while (rs.next()) { 
       bookResultList.add(new Book(rs.getString(1), rs.getInt(2))); 
      } 

      con.close(); 
     } catch (Exception e) { 
      System.out.println(e); 
     } 

     return "success"; 
    } 

} 

success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="/struts-tags" prefix="s"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Results</title> 
</head> 
<body> 
    <h1>data retrieved successfully..</h1> 
<h3>Here is the data: </h3><br> 
    <table border="2"> 
    <th> 
    <tr><td>Book Name</td><td>Cost</td></tr> 
    </th> 
    <s:iterator value="bookResultList"> 
     <s:iterator> 
      <tr> 
      <td><s:property value="bookName"/></td> 
      <td><s:property value="bookCost"/></td> 
      </tr> 
     </s:iterator> 

    </s:iterator> 
    </table> 
</body> 
</html> 

Любой, пожалуйста, помогите мне :(

ответ

1

Вы можете использовать <s:if> и <s:else> теги struts2, чтобы проверить, является ли список является пустым или нет, например

<s:if test="%{bookResultList.size>0}"> 
    <table> 
    <s:iterator value="bookResultList"> 
     <tr>  
      <td><s:property value="bookName"/></td> 
      <td><s:property value="bookCost"/></td>     
     </tr> 
    </s:iterator> 
</table> 
</s:if> 
<s:else> 
    <div> No data found</div> 
</s:else> 

В случае версии Struts1.x вы можете использовать тег <logic:present>. Надеюсь это поможет.

Смежные вопросы