ラベルの自動引継ぎ
以前は画面上でコンボ・ラジオ等を選択した場合、
値のみ保持されていたため、
次の確認画面等で選択した項目のラベルを表示する際には
少し面倒な作業が必要になっていたが、
最新のTeedaではラベルの保持もできるようになったらしい。
[hoge.html]
<input type="hidden" id="aaaItemsSave"/> <select id="aaaItems"> <option value="0">A</option> </select>
[HogePage.java]
private Integer aaa; ←値 private String aaaLabel; ←ラベル aaaItems = new TreeMap<String, Integer>(); aaaItems.put("AAAA", new Integer(1)); aaaItems.put("BBBB", new Integer(2)); aaaItems.put("CCCC", new Integer(3));
※前提条件として入力画面側にItemSaveが必要。
以上
コンボ・ラジオ用リストの改善
以前はselectタグに設定するリストは
List
[hoge.html]
<input type="hidden" id="aaaItemsSave"/> <select id="aaaItems"> <option value="0">A</option> </select>
[HogePage.java(旧)]
aaaItems = new ArrayList<Map>(); Map<String, Object> map1 = new HashMap<String, Object>(); map1.put("label", "AAAA"); map1.put("value", new Integer(1)); aaaItems.add(map1); Map<String, Object> map2 = new HashMap<String, Object>(); map2.put("label", "BBBB"); map2.put("value", new Integer(2)); aaaItems.add(map2); Map<String, Object> map3 = new HashMap<String, Object>(); map3.put("label", "CCCC"); map3.put("value", new Integer(3)); aaaItems.add(map3);
[HogePage.java(新)]
aaaItems = new TreeMap<String, Integer>(); aaaItems.put("AAAA", new Integer(1)); aaaItems.put("BBBB", new Integer(2)); aaaItems.put("CCCC", new Integer(3));
※リストの順番を保持したい場合はTreeMapを使用する。
以上
日記って消せないのかな・・
spanタグを出力しない
spanタグが入る事で、デザインが崩れる場合に
spanタグを出力しない様にするには以下の通り。
hoge.html
<td class="right"><span id="id" te:omittag="true">id</span></td> <td><span id="name">name</span></td>
出力されるHTML
<td class="right">1234</td> ←spanなし <td><span id="name">山田太郎</span></td> ←spanあり
以上
バックアップファイルのリストア
以前(pg_dumpで)バックアップしたファイルをリストアしようとしたが、
pgAdminIIIではリストア操作ができない(ファイルは指定できるがOKボタンが押せない)。
最初はバックアップとリストア時のバージョン(環境)の違いとも思ったが、
その場でpgAdminIIIからバックアップしたファイルですらリストアできなかったので
『なんじゃそりゃ』と嘆いていたところ、同じ問題挙げているWebPageを発見した。
LinuxからWindowsへのリストアについて -Linux版PostgreSQL7.Xからのバ- PostgreSQL | 教えて!goo
以下の対策方法を示す。
(1)コマンドプロンプトを開き、パスが通ってない場合は
../ポスグレインストールDir/binに移動する。
(2)対象のDatabaseにpsqlで接続する
>psql -U postgres -h localhost databaseName
(3)バックアップファイルを読み込む
databaseName=# \i C:/hoge/moge.backup
以上
ForEachのネスト更新
ネストしたForEachの更新が1.0.12でサポートされるようになった。
[TEEDA-386] ネストした forEach の更新をサポートしました. - The Seasar Foundation Issues (Deprecated)
現在アップされている、1.0.12-SNAPSHOTで確認してみた。
※getter/setter省略
【FooDto.java】
public class FooDto implements Serializable {
private static final long serialVersionUID = 1L;
private Integer fooNo;
private String aaa;
private String bbb;
private BooDto booItems;
}
【BooDto.java】
public class BooDto implements Serializable {
private String ccc;
}
【ForeachArrayPage.java】
public class ForeachArrayPage {
private FooDto fooItems;
private BooDto booItems;
private Integer fooNo;
private String aaa;
private String bbb;
private String ccc;
public String initialize() {
List l = createItems();
fooItems = new FooDto[l.size()];
l.toArray(fooItems);
return null;
}
protected List createItems() {
List l = new ArrayList();
FooDto f = new FooDto();
f.setFooNo(new Integer(1));
f.setAaa("aa1");
f.setBbb("bb1");
BooDto b = new BooDto[3];
b[0].setCcc("cc1");
b[1] = new BooDto();
b[1].setCcc("cc2");
b[2] = new BooDto();
b[2].setCcc("cc3");
f.setBooItems(b);
l.add(f);
}
}
【foreachArray.html】
<input type="hidden" id="fooItemsSave" /> <table id="foreachTable" border="1"> <div id="fooItems"> <tr> <td><span id="fooNo">100</span></td> <td><input type="text" id="aaa" /></td> <td><input type="text" id="bbb" /></td> <div id="booItems"> <td><input type="text" id="ccc" /></td> </div> </div> </table>
以上
include機能
include機能の設定方法は以下の通り。
header.html
<html> <body> headerです。 </body> </html>
footer.html
<html> <body> footerです。 </body> </html>
※読み込むhtmlは部分的なものではだめらしく、<html><body>等を記述する必要がある。
hogeList.html
<html> <body> <te:include id="layoutHeader" te:src="/include/header.html"/> 中身っす。 <te:include id="layoutFooter" te:src="/include/footer.html"/> </body> </html>
※src属性は/view/からの相対パスで設定する。
今回はlayout機能は使用していないのだが、
基本的には/view/layout/layout.htmlがあれば、自動的にそのレイアウトが適用される。
またPageクラスにgetLayout()メソッドを追加して、nullで適用外、
"/aaa/bbb.html"で適用するレイアウトの変更も可能。
以上
Teeda 1.0.11
Teeda 1.0.11が(RCが取れて)リリースされたので、
早速導入したところ、エラーが発生した・・(TдT)
原因はValidatorUtilが1.0.11ではなくなっているから。
TargetCommandUtilで代用するらしいが、
その情報が見つけられなくてソースを調べたりして
しばし路頭に迷った・・。
以上