2012-07-09 66 views
1

在XWork的提到指定的Java類,我在定製efforst感謝取得了一些進展顯著您的幫忙,並期待着類似的前進。 我創建的「高級」選項卡中的自定​​義選項卡,它現在看起來像this。 我已經能夠添加文本字段以及「保存」按鈕。我實際上遵循了'編輯空間細節'選項,並將其兩個表單元素用於實現輸出。 這就是我的虛擬機現在的樣子。如何結合的形式操作,如「保存」 Confluence中

##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://本地主機:1990 /匯合/空間/ doeditspace.action鍵= LBTEST '當我將鼠標移到'保存'按鈕上時。我假設它的治理Java類是EditSpaceDetails。那麼,當我們嘗試保存空間的編輯動作時,該類中的doEdit()方法(參見here)會轉變爲行動嗎?我可以看到具有此映射的xml專門用於此編輯空間詳細信息操作嗎?我的假設是否正確?

  2. 爲了有我剛纔所說,即上面顯示這將是我的Java類所需的變化詳見我的自定義頁面中輸入的名稱這樣的功能。

  3. 在頁面我剛纔定製有文本框,標籤是「名」。我應該使用不同的XML,以便我可以提供自定義標籤,如「項目名稱」?

請做好和我一樣的建議。

感謝 安吉

回答

1

回答你的第一個問題 - 你能得到一個更深入地瞭解XWork的動作映射,攔截器,如果你在匯合核心考慮看看可能的結果類型/ confluence/src/etc/java/xwork.xml

下面的例子是相應的映射爲貴「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> 

因此,如果您的返回值執行方法是ActionType.SUCCESS或「成功」該請求將被重定向到viewspacedetails的操作。

其他信息記錄在Atlassian開發人員網站: https://developer.atlassian.com/display/CONFDEV/XWork-WebWork+Module