[[FAQ]]

*Teeda [#q6e5781b]

#contents

**インクルードしたhtmlで前ページからのプロパティを参照したい [#n61605b9]

- A: http://ml.seasar.org/archives/seasar-user/2007-June/010238.html

**Tomcat起動時にParserConfigurationExceptionが発生する [#z2ade9df]

Tomcat起動時に次のようなエラーが発生する場合、

> org.seasar.framework.exception.ParserConfigurationRuntimeException: [ESSR0053]パーサの設定に問題があります。理由はjavax.xml.parsers.ParserConfigurationException: Feature 'http://apache.org/xml/features/xinclude' is not recognized.

$TOMCAT/common/endorsedにある、xercesImpl.jarとxml-apis.jarを削除してください。
(Tomcat 5.5.20で確認)


**TeedaExtensionでFormにInputTextが一つしかないとsubmit時にname属性が飛ばない。 [#m1fce656]

以下のように、formに1つのInputTextしか無い場合に、inputTextにfocusして

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#dynamicproperty


**TeedaのPageClass からコンポーネントをスコープに置くには [Seasar-user:5581] [#ad708177]
service,dtoなどの適当なパッケージにコンポーネントを作り、
 @Component(instance=InstanceType.SESSION)
 public class ...
のようにインスタンス属性を指定してください。

**個別の例外に応じてエラーページを設定する [#p89be55a]
teedaErrorPage.diconに個別の例外に応じてエラーページの設定を記述します。
 <component class="org.seasar.teeda.extension.util.TeedaExtensionErrorPageManagerImpl">
 <!--ここから追加-->
    <initMethod name="addErrorPage">
        <arg>@org.seasar.framework.exception.SRuntimeException@class</arg>
        <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の「選択してください」という文面を変更するには [#m9ca05ec]

propertiesで切り替えることが出来ます。

まずpropertiesファイルを作成して、faces-config.xmlに定義します。
(名前は一般的には、appMessages.propertiesがよく使われます)
このあたりはteeda-html-exampleを参考にしてください。

そこに、
org.seasar.teeda.extension.component.TSelect.NULL_LABEL
というキーで値を設定すればこのNULLラベルが使用されます。

**Pageクラスでrequest/response/session/context/FacesContextを使用するには [#xfc0eff8]
pageクラスに、以下のプロパティを用意してください。
|クラス|プロパティ名|
|HttpServeltRequest|-|
|HttpServeltResponse|-|
|HttpSession|-|
|ServletContext|-|
|FacesContext|facesContext|
**Pageクラスから直接エラーメッセージを設定する [#q79cd033]
javax.faces.internal.FacesMessageUtilを使用して、
 FacesMessageUtil.addErrorMessage("E0000002");
のようにしてください。

メッセージは、 WEB-INF/faces-config.xmlで指定したプロパティファイルに記述します。

**実体参照を表示するには [#m215ddb5]
例えば半角スペースを表示したい場合、

 &amp;nbsp;

となります。

**conditionコンポーネントの<div>タグにDynamicPropertyを設定したい [#z6f06f15]
 <div id ="isNotCreate" style="〜">

なタグにDynamicPropertyを設定する場合、

 public String getIsNotCreateStyle() {
  //略
 }

となります。

**静的HTMLをTeedaの処理対象から外す [#h66c0434]
TeedaはHTMLファイルをXMLとして解析するので、静的なHTMLをそのまま出力する場合にXMLとしてwell-formedでないと例外になります。

静的なHTMLは拡張子を.htmにすれば、Teedaの処理対象ではなくなるのでひとまず出力することができます。

**LogicやHelperにFacesContextをDIしたい [#u29c5deb]
Teeda は FacesContext を外部コンテキストに設定するので、creator.dicon で、

 <component class="org.seasar.framework.container.creator.LogicCreator">
   <property name="externalBinding">true</property>
 </component>

とすれば Logic にも FacesContext が DI されるようになります。

Helperも同様です。

**バリデーションのエラーメッセージに id ではなく日本語を使うには? [#r01c25bf]

Label機能を使用して、idに対する日本語名称を設定します。

http://d.hatena.ne.jp/dewa/20070720#1184920170

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS