1

私はあなたの助けのおかげで私のカスタマイズの努力においていくつかの重要な進歩を遂げました、そして同様に前進することを楽しみにしています。[詳細設定]タブでカスタムタブを作成しましたが、次のようになります。テキストフィールドと「保存」ボタンを追加することができました。私は実際に「スペースの詳細を編集」オプションに従い、そのフォーム要素の2つを使用して出力を実現しました。これが私のVMの現在の外観です。

  ##requireResource("confluence.web.resources:space-admin")
 <html>
   <head>
       <title>Freeway Project Creation</title>
      <meta name="decorator" content="atl.general" />   
   </head>

    <content tag="key">$action.space.key</content>

  <body>    

   #applyDecorator("root")
     #decoratorParam("helper" $action.helper)
     #decoratorParam("context" "space-administration")
     #decoratorParam("mode" "view-space-administration")

    #applyDecorator ("root")
     #decoratorParam ("context" "spaceadminpanel")
     #decoratorParam ("selection" "add-fpc-label-action-web-ui")
     #decoratorParam ("title" $action.getText("action.name"))
     #decoratorParam ("selectedTab" "admin")
     #decoratorParam("helper" $action.helper) 


      <div >
            <table width="95%" border=0 cellspacing=0 cellpadding=5>
              <form name="editspace" method="POST" >

        #bodytag( "TextField" "label='space-name'" "name='name'" "size=40" )
        #param ("labelwidth" "100")
        #param ("tdcolor" "f0f0f0")
        #end

            <tr>
                <td colspan="2" align="center">
                  #tag( "Submit" "name='confirm'" "value='update.name'" "theme='notable'" )
                #tag( "Submit" "name='cancel'" "value='cancel.name'" "theme='notable'" )
               </td>
             </tr>

        </form>
     </table>
  </div>



    #end
   #end    
  </body>
 </html>

このJAVAクラスとの相互作用がどのように出力をもたらすかを理解したいと思います。例:名前のテキストボックスに名前を入力して[保存]をクリックすると、結果のページに入力した名前が表示される必要があります。

今のところ、私の指定したJavaクラスは次のようになっています。

  package com.atlassian.myorg;

 import com.atlassian.confluence.core.ConfluenceActionSupport;
 import com.atlassian.confluence.pages.AbstractPage;
 import com.atlassian.confluence.pages.actions.PageAware;
 import com.opensymphony.xwork.Action;

 /**
   * The simplest action possible
 */
 public class FreewayProjectAction extends ConfluenceActionSupport 
  {
     @Override
      public String execute() throws Exception
   {
       return Action.SUCCESS;
  }

 }

だから私は3つの質問があります:

  1. [スペースの詳細の編集]には、[保存]ボタンの上にマウスを置くと、次のURL'http:// localhost:1990 / confluence / spaces / doeditspace.action?key=LBTEST'が表示されます。その管理JavaクラスはEditSpaceDetailsであると想定しています。それで、スペースの編集アクションを保存しようとするとアクションにスイングするクラス内のdoEdit()メソッド(ここを参照)はありますか?このスペース詳細の編集アクション専用にこのマッピングを持つxmlを表示できますか?私の仮定は正しいですか?

  2. このような機能を実現するために、前述しました。つまり、カスタムページに入力した名前を上記のように表示して、Javaクラスで必要な変更を行います。

  3. カスタマイズしたばかりのページにテキストボックスがあり、ラベルは「名前」です。「プロジェクト名」のようなカスタムラベルを提供できるように、別のxmlを使用する必要がありますか?

同じことを教えてください。

ありがとうアンジー

4

1 に答える 1

1

最初の質問に答えてください - confluence-core/confluence/src/etc/java/xwork.xmlを見れば、xwork アクション マッピング、インターセプター、および考えられる結果タイプについてより深い洞察を得ることができます。

次の例は、「doeditspace.action」に対応するマッピングです。

<action name="doeditspace" class="com.atlassian.confluence.spaces.actions.EditSpaceAction" method="doEdit">
    <param name="RequireSecurityToken">true</param>
    <result name="error" type="velocity">/spaces/editspace.vm</result>
    <result name="input" type="velocity">/spaces/editspace.vm</result>
    <result name="cancel" type="redirect">viewspacedetails.action?key=${key}</result>
    <result name="success" type="redirect">viewspacedetails.action?key=${key}</result>
</action>

したがって、executeメソッドからの戻り値がActionType.SUCCESSまたは「success」の場合、リクエストはviewspacedetailsアクションにリダイレクトされます。

追加情報は、アトラシアンの開発者向け Web サイト ( https://developer.atlassian.com/display/CONFDEV/XWork-WebWork+Module ) に記載されています。

于 2012-10-02T18:54:43.213 に答える