Atlassian的JIRA插件开发:如何使变量提供给Velocity模板(Atlassian JI

2019-07-20 12:03发布

公平的警告:这个问题将是非常艰难的回答,除非你有JIRA经验,并有机会获得其源(企业用户)。

大家好,

我写延伸AbstractIssueSelectAction插件。 我注意到, ${issue.summary} ,等等,都是从我的Velocity模板中,但是,也有其他的事情,我想公开。 我无法弄清楚如何将其他的东西添加到速度参数映射。 我甚至使用了远程调试器,试图逐步通过堆栈,弄清是怎么回事 - 但它是相当不清楚我都由于深堆栈,事实上,我是不是能够正确地将所有的源(和大量的WebWork的东西似乎混淆)。

我已经张贴在Atlassian的支持论坛,这个问题也是,我只是交叉张贴在这里得到更多的目光投向这个问题。

实施例动作的代码:

public class MyOperation extends AbstractIssueSelectAction {

    // ...
    private final Issue myIssue;

    public String doCollect() throws Exception {
      log.debug("Running doCollect()");
      return "collectinfo";
    }
 }

例如插件配置:

  <webwork1 key="unique_key" name="My Name" class="java.lang.Object">
   <actions>
    <action name="com.mycompany.jira.extensions.MyOperation" alias="MyOperation">
     <view name="collectinfo">/templates/myoperation-collectinfo.vm</view>
     <view name="success">/templates/myoperation-success.vm</view>
    </action>
   </actions>
  </webwork1>

在Velocity模板, ${issue.summary}正确解析当前的问题的总结,但如果myIssue是一些其他的问题,比如,我希望能够用${myIssue.summary}

谢谢! -Carl

Answer 1:

如何使用$ action.mymethod()来获得这些信息,其中的MyMethod是你在Action类“MyOperation”定义的方法? 速度参数是繁琐的,了解他们是如何被填充。

〜马特



文章来源: Atlassian JIRA Plugin Development: How to make variables available to velocity templates