データの表示先は,定義ファイル target タグの id 属性で指定します。
ここでは,id属性指定により,同一のデータを複数の場所に表示させることをやってみます。
![]() |
「test」ボタンを押すと → |
![]() |
まず,HTML はこんな感じになります。
<html>
<head>
<script type="text/javascript" src="/conga/dhtml/conga.js" charset="UTF-8"></script>
<link rel="stylesheet" href="/conga/dhtml/conga.css" type="text/css">
<style type="text/css">
.i {width:100px; border:blue 1px solid; margin-top:0px}
</style>
</head>
<body>
<form>
入力領域:<input type="text" name="text">
<input type="button" name="test" onclick="new CongaRequest().send('test.r')">
</form>
INPUTタグ (id="input-tag"): <br>
<input id="input-tag" type="text" ></input><br><br>
Pタグ (id="p-tag"):
<p id="p-tag" class="i" style="height:20px;"></p><br>
DIVタグ (id="div-tag"):
<div id="div-tag" class="i" style="height:200px;"></div>
</body>
</html>
記述に関するポイントは以下の4点です。
Value オブジェクトは,「チュートリアル - 入力した値を表示させてみる」で作成した TestData クラスを使用します。
リクエスト定義ファイルは以下のようになります。
<module>
<request id="test.r" page="test.nga.servlet.TestData">
<parameter>
<property name="text" required="true" />
</parameter>
<result>
<target name="text" id="input-tag" />
<target name="text" id="p-tag" />
<target name="text" id="div-tag" include="./jsp/test.jsp" />
<target type="iwindow" name="text" id="window"
title="ウインドウへも"
bounds="20,20,200,100"
icon="url(/conga/dhtml/img/mail.png)"
/>
</result>
</request>
</module>
リクエスト定義ファイルの記述ポイントは「<target> タグの id 属性を HTML で記述した id 属性と同じにする」ということだけです。
なお,今回は,内部ウインドウ表示を行なっていますが,この場合は,target タグの type 属性に "iwindow" を指定してください。
リクエスト定義ファイルの target タグに include 属性を指定することにより,JSP や HTML の内容を表示データとすることができます。
この例では div-tag に表示する内容を include="./jsp/test.jsp" で指定しています。
<%@ page contentType="text/html; charset=Shift_JIS" %> <%@page import="nga.servlet.dsp.writer.DefaultResultWriter"%> <%Object value = DefaultResultWriter.getTargetValue(request).getValue();%> <h1><%=value%></h1> <h2><%=value%></h2> <h3><%=value%></h3>
DefaultResultWriter クラスの getTargetValue(request) メソッドを呼び出すことにより,現在処理対象となっているデータに関する情報 (TargetValue) を取得できます。
TargetValue の getValue() メソッドを呼び出すことにより,現在出力対象となっている値を取得することができます。