機能拡張3:一覧データをCSV形式でダウンロード †1.CSVファイル出力用Javaソース作成 †CSVファイル出力用Javaソースファイル出力
2.一覧画面にCSVダウンロードボタンを追加 †一覧画面htmlに以下の記述を追加 <input type="submit" name="download" value="CSVダウンロード"> 3.一覧画面JavaクラスにCSVダウンロード処理を追加 †一覧画面Javaクラスに public PirkaRespons download() メソッドを追加し、処理を実装する。 public PirkaRespons download() { FieldMap fm = getFieldMap(); byte[] buffer = null; // 出力するファイル名 String filename = "userlist.txt"; // 出力するデータを検索して抽出するオブジェクトを作成 // オブジェクトはRecordSearchインターフェースを実装していること(このサンプルではUserlistSearcherDaoを使用) UserlistSearcherDao dao = new UserlistSearcherDao(); // CSV出力クラスのオブジェクト作成 UserlistCsvFileOut myObj = new UserlistCsvFileOut("FileName.txt", true); FileInputStream fis = null; ByteArrayOutputStream bo = null; try { // 検索条件初期化 dao.clearSearchParameter(); // 検索条件追加 ユーザーID(前方一致) dao.addSearchParameter("userId", UserlistSearcherDao.like, fm.getValueString("param_field_userId")); // 検索条件追加 氏名(前方一致) dao.addSearchParameter("userName", UserlistSearcherDao.like, fm.getValueString("param_field_userName")); // 検索を行い、抽出データをCSV形式に出力 dao.search(myObj); buffer = new byte[(int) new File("FileName.txt").length()]; fis = new FileInputStream(filename); bo = new ByteArrayOutputStream(); while (fis.read(buffer) > 0) { bo.write(buffer); } bo.close(); fis.close(); buffer = bo.toByteArray(); } catch (Exception e) { e.printStackTrace(); return this; } finally { try { if (bo != null) { bo.close(); } if (fis != null) { fis.close(); } } catch (Exception e2) { e2.printStackTrace(); return this; } } // 保存するファイル名 String saveFilename = "userlist" + "_" + System.currentTimeMillis() + ".csv" // ダウンロードダイアログの表示 return new PirkaFileDownloaderFromBytes(saveFilename , buffer); } 4.CSVファイルのダウンロード †
|