Java Atlassian JIRA插件开发:如何使变量可用于velocity模板

Java Atlassian JIRA插件开发:如何使变量可用于velocity模板,java,velocity,jira,webwork,Java,Velocity,Jira,Webwork,公平警告:这个问题很难回答,除非你有JIRA的经验,并且可以访问他们的来源(企业用户)。 大家好, 我正在写一个扩展AbstractIssuseSelectAction的插件。我注意到,${issue.summary}等都可以从我的velocity模板中获得,但是,我还想公开一些其他内容。我不知道如何将其他东西添加到速度参数贴图中。我甚至使用了一个远程调试器来尝试逐步检查堆栈并找出到底发生了什么-但由于堆栈很深,而且我无法正确地附加所有源代码(而且很多webwork内容似乎都被混淆了),这对我来

公平警告:这个问题很难回答,除非你有JIRA的经验,并且可以访问他们的来源(企业用户)。

大家好,

我正在写一个扩展AbstractIssuseSelectAction的插件。我注意到,
${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>

/模板/myoperation-collectinfo.vm
/模板/myoperation-success.vm
在velocity模板中,
${issue.summary}
正确解析为当前问题的摘要,但是如果myIssue是其他问题,例如,我希望能够使用
${myIssue.summary}

谢谢!
-Carl

使用$action.mymethod()获取信息怎么样,其中mymethod是您在action类“MyOperation”中定义的方法?速度参数非常精确,以了解它们是如何填充的


~Matt

Matt,我觉得你有问题。令人尴尬的是,我的getter返回null,因为它们没有初始化,我的init()函数只是在稍后运行。不幸的是,吉拉像妓女一样吞下了NPE,所以我只有在尝试了你的建议后才能知道——调用${action.myMethod()}暴露了NPE。谢谢你,马特!注意:这个问题是关于Jira3.X-4.X的,可能不再适用于Jira5.X+,像AbstractIssuseSelectAction这样扩展抽象类不再常见