Webwork动作与servlet和其他插件管理员ui问题

时间:2012-05-31 12:57:43

标签: confluence

我正在尝试为我的插件添加配置,但我对我的选项感到困惑。任何人都可以给我一个webwork操作与servlet的比较,特别是在配置UI方面。

到目前为止我的背景是我经历了this tutorial。之后我发现我安装的所有插件都使用了操作,并且查看一些现有代码,我发现实现和使用的操作看起来更简单(不需要实现JavaScript / REST接口)。

我很困惑为什么教程似乎使事情过于复杂,实际上没有提到做同样事情的更简单的方法。任何人吗?

最重要的是,我至少看到了三种保存设置的方法:使用PluginSettingsFactoryBandanaManagerConfigurationManager。更混乱!如今,将这些设置融合在一起的“现代”方式是什么?

1 个答案:

答案 0 :(得分:2)

Webwork Action vs. Servlet

  • Webwork Action的优势在于您可以使用内置的速度模板机制以及网络工作本身的所有优点。
  • 这两种变体都具有依赖注入的优势,通过构建在spring webframework中的融合。
  • 使用servlet而不是webwork操作可以让您在所有atlassian平台软件中独立,因为并非所有atlassian产品都使用webwork。
  • atlassian-plugin.xml中的插件描述符允许插件配置页面的两种方法:

<atlassian-plugin key="${project.groupId}.${project.artifactId}" name="${project.name}" plugins-version="2"> 
    <plugin-info>
        <description>${project.description}</description> 
        <version>${project.version}</version>
        <vendor name="${project.organization.name}" url="${project.organization.url}"/>  
        <param name="plugin-icon">images/pluginIcon.png</param>  
        <param name="plugin-logo">images/pluginLogo.png</param>  
        <param name="configure.url">/admin/plugins/PATHTOYOURCONFIGPAGE</param>  
    </plugin-info>  
    ...  
</atlassian-plugin> 

存储插件设置

如果您查看PluginSettingsFactory interface以及实现此接口的所有已知类的列表,您将找到ConfluencePluginSettingsFactory。声明了public void setBandanaManager (BandanaManager bandanaManager)方法。这是BandanaManager的依赖注入。这表明PluginSettingsFactory interface的实现使用BandanaManager进行属性持久性。

我个人不知道 ConfigurationManager 的事情。我使用BandanaManager为我的所有汇合插件存储将通过管理员设置页面或其他地方设置的属性。

请查看atlassian所描述的保持数据的最先进方式:Persistence in Confluence。他们也使用BandanaManager。