FAQ/Teeda
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[FAQ]]
*Teeda [#q6e5781b]
#contents
**インクルードしたhtmlで前ページからのプロパティを参照し...
- A: http://ml.seasar.org/archives/seasar-user/2007-June/...
**Tomcat起動時にParserConfigurationExceptionが発生する [#...
Tomcat起動時に次のようなエラーが発生する場合、
> org.seasar.framework.exception.ParserConfigurationRunti...
$TOMCAT/common/endorsedにある、xercesImpl.jarとxml-apis.j...
(Tomcat 5.5.20で確認)
**TeedaExtensionでFormにInputTextが一つしかないとsubmit時...
以下のように、formに1つのInputTextしか無い場合に、inputTe...
Enterキーを押すとname属性がわたらず、doXxxが呼ばれない。
この現象はIEの場合のみ発生する。
<form id="form">
<span>hogehoge</span>
<input type="text" id="arg1" title="INPUT1" />
<input type="submit" value="calculate" id="doCalculate"/>
</form>
これを解消するには、
<input type="text" style="display: none"/>
をひとつ追加する
**TeedaをWAS6.1で動かす [#c3390567]
TeedaをWAS6.1で動かすには、
-WEB-INF/libにServletのjarが含まれていたら消去してWARにす...
-WASの設定で、WARのクラスローダーに「最初にアプリケーショ...
**動的にHTMLタグの属性を設定を行うには [#o0388425]
DynamicPropertyを使用してください。
http://teeda.seasar.org/ja/extension_features.html#dynami...
**TeedaのPageClass からコンポーネントをスコープに置くには...
service,dtoなどの適当なパッケージにコンポーネントを作り、
@Component(instance=InstanceType.SESSION)
public class ...
のようにインスタンス属性を指定してください。
**個別の例外に応じてエラーページを設定する [#p89be55a]
teedaErrorPage.diconに個別の例外に応じてエラーページの設...
<component class="org.seasar.teeda.extension.util.TeedaE...
<!--ここから追加-->
<initMethod name="addErrorPage">
<arg>@org.seasar.framework.exception.SRuntimeExce...
<arg>"/view/error/custom.html"</arg>
</initMethod>
<!--ここまで-->
<initMethod name="addErrorPage">
<arg>@java.lang.Throwable@class</arg>
<arg>"/view/error/error.html"</arg>
</initMethod>
</component>
この場合、個別の例外の設定のほうが上にくるようにしてくだ...
**NullLabelの「選択してください」という文面を変更するには...
propertiesで切り替えることが出来ます。
まずpropertiesファイルを作成して、faces-config.xmlに定義...
(名前は一般的には、appMessages.propertiesがよく使われま...
このあたりはteeda-html-exampleを参考にしてください。
そこに、
org.seasar.teeda.extension.component.TSelect.NULL_LABEL
というキーで値を設定すればこのNULLラベルが使用されます。
**Pageクラスでrequest/response/session/context/FacesConte...
pageクラスに、以下のプロパティを用意してください。
|クラス|プロパティ名|
|HttpServeltRequest|-|
|HttpServeltResponse|-|
|HttpSession|-|
|ServletContext|-|
|FacesContext|facesContext|
**Pageクラスから直接エラーメッセージを設定する [#q79cd033]
javax.faces.internal.FacesMessageUtilを使用して、
FacesMessageUtil.addErrorMessage("E0000002");
のようにしてください。
メッセージは、 WEB-INF/faces-config.xmlで指定したプロパテ...
**実体参照を表示するには [#m215ddb5]
例えばノーブレークスペース(non-breaking space, NBSP)を表...
-Teeda 1.0.12以降で[[CLASSIC>http://teeda.seasar.org/ja/e...
-Teeda 1.0.11 以前またはTeeda 1.0.12以降で[[CLASSIC>http:...
&
-outputTextでノーブレークスペースを表示する場合は、Pageク...
this.message = "\u00A0"
**conditionコンポーネントの<div>タグにDynamicPropertyを設...
<div id ="isNotCreate" style="〜">
なタグにDynamicPropertyを設定する場合、
public String getIsNotCreateStyle() {
//略
}
となります。
**静的HTMLをTeedaの処理対象から外す [#h66c0434]
TeedaはHTMLファイルをXMLとして解析するので、静的なHTMLを...
静的なHTMLは拡張子を.htmにすれば、Teedaの処理対象ではなく...
**LogicやHelperにFacesContextをDIしたい [#u29c5deb]
Teeda は FacesContext を外部コンテキストに設定するので、c...
<component class="org.seasar.framework.container.creator...
<property name="externalBinding">true</property>
</component>
とすれば Logic にも FacesContext が DI されるようになりま...
Helperも同様です。
**バリデーションのエラーメッセージに id ではなく日本語を...
Label機能を使用して、idに対する日本語名称を設定します。
http://d.hatena.ne.jp/dewa/20070720#1184920170
**別サーバーのCGIを呼び出したい [#r2aaf4e6]
Pageクラスで普通にリダイレクトしてもらえれば
問題ありません.
FacesContextのresponseComplete()だけは呼び出してください.
下記のような感じです.
public String doHoge() throws IOException {
response.sendRedirect("http://www.example.com/");
facesContext.responseComplete();
return null;
}
**PageクラスでCSVダウンロードをさせたい [#u67e358f]
流れとしては以下のような手順になる
-ダウンロードするFileを生成
-ContentTypeやヘッダ情報の付加
-ServletOutputResponseStreamに書き出す
-FacesContext.responseComplete()を呼び出す
public void doDownload() {
final File file = downloadHelper.getFile("javaexpert-sa...
response.setContentType("application/octet-stream");
response.setHeader("content-disposition", "attachment; ...
+ file.getName() + "\"");
OutputStream os = null;
try {
os = response.getOutputStream();
os.write(FileUtil.getBytes(file));
} catch (IOException e) {
throw new AppFacesException("E0000002");
} finally {
try {
os.close();
} catch (final IOException e) {
}
}
this.facesContext.responseComplete();
}
**ファイルアップロード [#iac58710]
1.0.13 からは Teeda の FileUpload コンポーネントを使うこ...
http://teeda.seasar.org/ja/extension_features.html#fileup...
1.0.12 以前の場合は,TomahawkのFileUploadを使います。
http://d.hatena.ne.jp/shot6/20061122#1164175683
Teeda 1.0.8-RC1までは上記方法で動作するのを確認しています。
**Validationエラーのメッセージを変更する [#r5f769a3]
http://d.hatena.ne.jp/dewa/20070808#1186573480
**foreachの中身が表示されない [#r6c95bf4]
foreachを使う場合、DTOやMapで持っているIDと同じフィールド...
**特定のPageにだけ(もしくは特定のPage以外のPageに)Interce...
特定のPageだけなら、Pageクラスに
@Aspect(インターセプタ名)
public String doHoge() {
...
}
のようにアノテーションを指定します。
**Pageにaspectが適用されない [#h4f2ce5c]
Seasar2のデフォルトでは、aspectはそのクラスのインターフェ...
TeedaのPageクラスはインターフェースを持ってないので、cuns...
<property name="pointcut">"do.*, initialize, prerender"<...
のようにポイントカットを指定する必要があります。
**ForEach内でチェックボックスを使用する [#td33d48d]
http://d.hatena.ne.jp/yone098/20070122/1169446352
をご参照ください。
**foreachでリストを展開したときに、一部のプロパティだけ表...
Pageがもっているプロパティの型とDto/Mapのプロパティの型が...
終了行:
[[FAQ]]
*Teeda [#q6e5781b]
#contents
**インクルードしたhtmlで前ページからのプロパティを参照し...
- A: http://ml.seasar.org/archives/seasar-user/2007-June/...
**Tomcat起動時にParserConfigurationExceptionが発生する [#...
Tomcat起動時に次のようなエラーが発生する場合、
> org.seasar.framework.exception.ParserConfigurationRunti...
$TOMCAT/common/endorsedにある、xercesImpl.jarとxml-apis.j...
(Tomcat 5.5.20で確認)
**TeedaExtensionでFormにInputTextが一つしかないとsubmit時...
以下のように、formに1つのInputTextしか無い場合に、inputTe...
Enterキーを押すとname属性がわたらず、doXxxが呼ばれない。
この現象はIEの場合のみ発生する。
<form id="form">
<span>hogehoge</span>
<input type="text" id="arg1" title="INPUT1" />
<input type="submit" value="calculate" id="doCalculate"/>
</form>
これを解消するには、
<input type="text" style="display: none"/>
をひとつ追加する
**TeedaをWAS6.1で動かす [#c3390567]
TeedaをWAS6.1で動かすには、
-WEB-INF/libにServletのjarが含まれていたら消去してWARにす...
-WASの設定で、WARのクラスローダーに「最初にアプリケーショ...
**動的にHTMLタグの属性を設定を行うには [#o0388425]
DynamicPropertyを使用してください。
http://teeda.seasar.org/ja/extension_features.html#dynami...
**TeedaのPageClass からコンポーネントをスコープに置くには...
service,dtoなどの適当なパッケージにコンポーネントを作り、
@Component(instance=InstanceType.SESSION)
public class ...
のようにインスタンス属性を指定してください。
**個別の例外に応じてエラーページを設定する [#p89be55a]
teedaErrorPage.diconに個別の例外に応じてエラーページの設...
<component class="org.seasar.teeda.extension.util.TeedaE...
<!--ここから追加-->
<initMethod name="addErrorPage">
<arg>@org.seasar.framework.exception.SRuntimeExce...
<arg>"/view/error/custom.html"</arg>
</initMethod>
<!--ここまで-->
<initMethod name="addErrorPage">
<arg>@java.lang.Throwable@class</arg>
<arg>"/view/error/error.html"</arg>
</initMethod>
</component>
この場合、個別の例外の設定のほうが上にくるようにしてくだ...
**NullLabelの「選択してください」という文面を変更するには...
propertiesで切り替えることが出来ます。
まずpropertiesファイルを作成して、faces-config.xmlに定義...
(名前は一般的には、appMessages.propertiesがよく使われま...
このあたりはteeda-html-exampleを参考にしてください。
そこに、
org.seasar.teeda.extension.component.TSelect.NULL_LABEL
というキーで値を設定すればこのNULLラベルが使用されます。
**Pageクラスでrequest/response/session/context/FacesConte...
pageクラスに、以下のプロパティを用意してください。
|クラス|プロパティ名|
|HttpServeltRequest|-|
|HttpServeltResponse|-|
|HttpSession|-|
|ServletContext|-|
|FacesContext|facesContext|
**Pageクラスから直接エラーメッセージを設定する [#q79cd033]
javax.faces.internal.FacesMessageUtilを使用して、
FacesMessageUtil.addErrorMessage("E0000002");
のようにしてください。
メッセージは、 WEB-INF/faces-config.xmlで指定したプロパテ...
**実体参照を表示するには [#m215ddb5]
例えばノーブレークスペース(non-breaking space, NBSP)を表...
-Teeda 1.0.12以降で[[CLASSIC>http://teeda.seasar.org/ja/e...
-Teeda 1.0.11 以前またはTeeda 1.0.12以降で[[CLASSIC>http:...
&
-outputTextでノーブレークスペースを表示する場合は、Pageク...
this.message = "\u00A0"
**conditionコンポーネントの<div>タグにDynamicPropertyを設...
<div id ="isNotCreate" style="〜">
なタグにDynamicPropertyを設定する場合、
public String getIsNotCreateStyle() {
//略
}
となります。
**静的HTMLをTeedaの処理対象から外す [#h66c0434]
TeedaはHTMLファイルをXMLとして解析するので、静的なHTMLを...
静的なHTMLは拡張子を.htmにすれば、Teedaの処理対象ではなく...
**LogicやHelperにFacesContextをDIしたい [#u29c5deb]
Teeda は FacesContext を外部コンテキストに設定するので、c...
<component class="org.seasar.framework.container.creator...
<property name="externalBinding">true</property>
</component>
とすれば Logic にも FacesContext が DI されるようになりま...
Helperも同様です。
**バリデーションのエラーメッセージに id ではなく日本語を...
Label機能を使用して、idに対する日本語名称を設定します。
http://d.hatena.ne.jp/dewa/20070720#1184920170
**別サーバーのCGIを呼び出したい [#r2aaf4e6]
Pageクラスで普通にリダイレクトしてもらえれば
問題ありません.
FacesContextのresponseComplete()だけは呼び出してください.
下記のような感じです.
public String doHoge() throws IOException {
response.sendRedirect("http://www.example.com/");
facesContext.responseComplete();
return null;
}
**PageクラスでCSVダウンロードをさせたい [#u67e358f]
流れとしては以下のような手順になる
-ダウンロードするFileを生成
-ContentTypeやヘッダ情報の付加
-ServletOutputResponseStreamに書き出す
-FacesContext.responseComplete()を呼び出す
public void doDownload() {
final File file = downloadHelper.getFile("javaexpert-sa...
response.setContentType("application/octet-stream");
response.setHeader("content-disposition", "attachment; ...
+ file.getName() + "\"");
OutputStream os = null;
try {
os = response.getOutputStream();
os.write(FileUtil.getBytes(file));
} catch (IOException e) {
throw new AppFacesException("E0000002");
} finally {
try {
os.close();
} catch (final IOException e) {
}
}
this.facesContext.responseComplete();
}
**ファイルアップロード [#iac58710]
1.0.13 からは Teeda の FileUpload コンポーネントを使うこ...
http://teeda.seasar.org/ja/extension_features.html#fileup...
1.0.12 以前の場合は,TomahawkのFileUploadを使います。
http://d.hatena.ne.jp/shot6/20061122#1164175683
Teeda 1.0.8-RC1までは上記方法で動作するのを確認しています。
**Validationエラーのメッセージを変更する [#r5f769a3]
http://d.hatena.ne.jp/dewa/20070808#1186573480
**foreachの中身が表示されない [#r6c95bf4]
foreachを使う場合、DTOやMapで持っているIDと同じフィールド...
**特定のPageにだけ(もしくは特定のPage以外のPageに)Interce...
特定のPageだけなら、Pageクラスに
@Aspect(インターセプタ名)
public String doHoge() {
...
}
のようにアノテーションを指定します。
**Pageにaspectが適用されない [#h4f2ce5c]
Seasar2のデフォルトでは、aspectはそのクラスのインターフェ...
TeedaのPageクラスはインターフェースを持ってないので、cuns...
<property name="pointcut">"do.*, initialize, prerender"<...
のようにポイントカットを指定する必要があります。
**ForEach内でチェックボックスを使用する [#td33d48d]
http://d.hatena.ne.jp/yone098/20070122/1169446352
をご参照ください。
**foreachでリストを展開したときに、一部のプロパティだけ表...
Pageがもっているプロパティの型とDto/Mapのプロパティの型が...
ページ名: