Uploaded image for project: 'Teeda'
  1. Teeda
  2. TEEDA-245

TeedaAjaxにおけるdiconファイルにてContentTypeの設定を可能にする

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.0.3
    • Fix Version/s: 1.0.4
    • Component/s: Teeda Ajax
    • Labels:
      None

      Description

      現状、JSON形式の場合のContent-Typeは
      org.seasar.teeda.ajax.AjaxConstantsで定義されている。
      これをdiconなどによる設定が出来るような拡張を検討する。

        Activity

        Hide
        yone yone added a comment -

        diconに以下のようにそれぞれのContentTypeを設定してください.
        <component class="org.seasar.teeda.ajax.AjaxUtil">
        <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeJson("json/org; charset=UTF-8") </initMethod>
        <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeXml("xml/org; charset=UTF-8")</initMethod>
        <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeHtml("html/org; charset=UTF-8")</initMethod>
        <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeText("text/org; charset=UTF-8")</initMethod>
        </component>

        Show
        yone yone added a comment - diconに以下のようにそれぞれのContentTypeを設定してください. <component class="org.seasar.teeda.ajax.AjaxUtil"> <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeJson("json/org; charset=UTF-8") </initMethod> <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeXml("xml/org; charset=UTF-8")</initMethod> <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeHtml("html/org; charset=UTF-8")</initMethod> <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeText("text/org; charset=UTF-8")</initMethod> </component>
        Hide
        yone yone added a comment -

        diconファイルにて設定されない場合は,今まで通りデフォルトのContentTypeが設定されます.

        String CONTENT_TYPE_XML = "text/xml; charset=UTF-8";

        String CONTENT_TYPE_JSON = "text/javascript; charset=UTF-8";

        String CONTENT_TYPE_TEXT = "text/plain; charset=UTF-8";

        String CONTENT_TYPE_HTML = "text/html; charset=UTF-8";

        Show
        yone yone added a comment - diconファイルにて設定されない場合は,今まで通りデフォルトのContentTypeが設定されます. String CONTENT_TYPE_XML = "text/xml; charset=UTF-8"; String CONTENT_TYPE_JSON = "text/javascript; charset=UTF-8"; String CONTENT_TYPE_TEXT = "text/plain; charset=UTF-8"; String CONTENT_TYPE_HTML = "text/html; charset=UTF-8";
        Hide
        higa higa added a comment -

        componentタグのclass属性はないほうがよさげ。AjaxUtilのインスタンスは必要としないので。
        もしエラーになるなら、java.lang.Objectあたりにするとか。

        Show
        higa higa added a comment - componentタグのclass属性はないほうがよさげ。AjaxUtilのインスタンスは必要としないので。 もしエラーになるなら、java.lang.Objectあたりにするとか。
        Hide
        yone yone added a comment -

        そうですね,contentTypeTest.diconをjava.lang.Objectに変更してコミットしました.

        1. class属性が無い場合は以下のエラーになりますよね
        2. org.seasar.framework.container.factory.TagAttributeNotDefinedRuntimeException: [ESSR0056]タグ(component)の属性(class)が定義されていません

        以下のように,独自のcontent-typeを設定して下さい。

         
        <component  class="java.lang.Object">
        <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeJson("json/org; charset=UTF-8") </initMethod>
        <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeXml("xml/org; charset=UTF-8")</initMethod>
        <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeHtml("html/org; charset=UTF-8")</initMethod>
        <initMethod>@org.seasar.teeda.ajax.AjaxUtil@setContentTypeText("text/org; charset=UTF-8")</initMethod>
        </component> 
        
        Show
        yone yone added a comment - そうですね,contentTypeTest.diconをjava.lang.Objectに変更してコミットしました. class属性が無い場合は以下のエラーになりますよね org.seasar.framework.container.factory.TagAttributeNotDefinedRuntimeException: [ESSR0056] タグ(component)の属性(class)が定義されていません 以下のように,独自のcontent-typeを設定して下さい。 <component class= "java.lang.Object" > <initMethod> @org.seasar.teeda.ajax.AjaxUtil@setContentTypeJson( "json/org; charset=UTF-8" ) </initMethod> <initMethod> @org.seasar.teeda.ajax.AjaxUtil@setContentTypeXml( "xml/org; charset=UTF-8" ) </initMethod> <initMethod> @org.seasar.teeda.ajax.AjaxUtil@setContentTypeHtml( "html/org; charset=UTF-8" ) </initMethod> <initMethod> @org.seasar.teeda.ajax.AjaxUtil@setContentTypeText( "text/org; charset=UTF-8" ) </initMethod> </component>

          People

          • Assignee:
            yone yone
            Reporter:
            yone yone
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development