サポート > Wagby Developer Network > カスタマイズ事例 > 「お知らせ」モデルの内容を Wadget に表示する。

「お知らせ」モデル

アプリケーションギャラリーにある「お知らせ」機能は、最新のお知らせ情報を Wadget 部に表示しています。
ここでは、その Wadget のソースコードを説明します。

Wadget のソースコード解説

「お知らせ」機能に対応した Wadget のソースコードは次のとおりです。

<!-- お知らせ (*) -->
<%@ page pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<!-- 表示最大数を設定します。-->
<c:set var="max_display_num" value="10"/> (*1)
<c:set var="now" value="<%= new java.util.Date() %>"/>
<sql:setDataSource dataSource="jdbc/jfc"/>
<sql:query var="news">
select "newsid","limitdate","title","report" from "news"
where "limitdate" >= ?
<sql:dateParam value="${now}" type="date"/>
order by "limitdate";
</sql:query>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
  String css_url = jp.jasminesoft.jfc.JFCUtils.createCssPath(request);
%>
<html>
<head>
<link rel="stylesheet" type="text/css" href ="<%= css_url %>"/>
<style type="text/css">
<!--
.news {      
  color: #660000;
  line-height: 18px;
  padding: 2px;
  border-color: #CC0033;
  border-width: 1px 1px 1px 1px;
  border-style: dotted;
  background-color: #FFEEEE;
}
--> (*2)
</style>
<title></title>
</head>
<body id="wadget">

<c:set var="length" value="${news.rowCount}"/>
<c:if test="${length > max_display_num}">
  <c:set var="length" value="${max_display_num}"/>
</c:if>
<table width="100%" border="0">
<c:forEach var="c" begin="0" end="${(length > 0) ? length - 1 : 0}">
<c:if test="${news.rowsByIndex[c][1] != null}">
<tr>
<td class="news">
  <table border="0" style="margin:0px; padding:0px;">
  <tr>
    <td style="color:#600; font-size:8pt;"> (*3)
    <c:out value="${news.rowsByIndex[c][1]}"/>
    </td>
  </tr>
  <tr>
    <td style="color:#600; font-size:8pt;"> (*3)
    <a href ="/wagby/showNews.do?newsid= (*4)
<c:out value="${news.rowsByIndex[c][0]}"/>"
target="_parent"><c:out value="${news.rowsByIndex[c][2]}"/></a>
    </td>
  </tr>
  <c:if test="${fn:length(news.rowsByIndex[c][3]) > 0}">
  <tr>
    <td style="color:#600; font-size:7pt;"> (*3)
    <c:out value="${fn:substring(news.rowsByIndex[c][3], 0, 10)}"/>
    <c:if test="${fn:length(news.rowsByIndex[c][3]) > 10}">
      ...
    </c:if>
    </td>
  </tr>
  </c:if>
  </table>
</td>
</tr>
</c:if>
</c:forEach>
</table>

</body>
</html>

  • 変数 max_display_num に最大表示数を設定しています。この値を変更することで、表示数を調整することができます。
  • <sql:query> 要素で SQL 文を用意しています。取得された値は "news" という変数に格納されます。
  • <sql:dateParam> 要素を用いて可変パラメータを設定することができます。日付型なので dateParam を用います。プレースホルダ「?」が必要です。
  • 検索結果数は news.rowCount で取得できます。
  • 検索結果は news.rowsByIndex で取得できます。

カスタマイズ

この Wadget をカスタマイズすることができます。 カスタマイズしたファイルを $(DEVHOME)/env/webpage/system/wadget フォルダに保存することで、ビルド処理を繰り返しても常にカスタマイズされたコードが有効になります。

同時に表示する件数を変更する

上記ソースコード中の (*1) にある「value="10"」の数値部分を変更してください。

見栄え(文字の大きさ、色など)を変更する

上記ソースコード中の (*2) に記載されている CSS 定義を変更することで、枠線の色や形、ならびに背景色を変更することができます。 また、(*3) に記載されている style 属性の CSS 定義を変更することで、フォントの色や大きさを変更することができます。

「jp.jasminesoft.wagby」以外のパッケージ名に対応させる

上記ソースコード中の (*4) にある「wagby」という表記を、お使いの「プロジェクト名(英語)」に変更してください。

Wadget の詳細については、Wadget の開発をお読みください。

ダウンロード

このページで紹介した「お知らせ」モデルならび Wadget 一式は、アプリケーションギャラリー - お知らせからダウンロードできます。

このページ

カスタマイズ事例