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

cmy*_*ers 10 java velocity jira webwork

公平警告:除非您有使用JIRA的经验并且可以访问其源(企业用户),否则这个问题将很难回答.

问候所有,

我正在编写一个扩展AbstractIssueSelectAction的插件.我注意到${issue.summary},等等都可以从我的力度模板中获得,但是,还有其他我希望揭示的内容.我无法弄清楚如何在速度参数图中添加其他东西.我甚至使用了一个远程调试器来尝试逐步完成堆栈并弄清楚发生了什么 - 但由于深度堆栈以及我无法正确附加所有源代码而我很不清楚(很多网络工作似乎都被混淆了).

我也在Atlassian支持论坛上发布了这个问题,我只是在这里交叉发帖以更多地关注这个问题.

示例操作代码:

public class MyOperation extends AbstractIssueSelectAction {

    // ...
    private final Issue myIssue;

    public String doCollect() throws Exception {
      log.debug("Running doCollect()");
      return "collectinfo";
    }
 }
Run Code Online (Sandbox Code Playgroud)

示例插件配置:

  <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>
Run Code Online (Sandbox Code Playgroud)

在速度模板中,${issue.summary}正确解析当前问题的摘要,但如果myIssue是其他问题,例如,我希望能够使用${myIssue.summary}.

谢谢!-Carl

mdo*_*oar 8

如何使用$ action.mymethod()获取信息,其中mymethod是您在Action类"MyOperation"中定义的方法?速度参数很繁琐,以了解它们是如何填充的.

〜马特

  • 马特,我认为你有问题.令人尴尬的是,我的getter返回null因为它们没有被初始化,我的init()函数只是稍后运行.不幸的是,JIRA像妓女一样吞下了NPE,所以我只能在尝试你的建议后告诉你 - 叫$ {action.myMethod()}暴露了NPE.谢谢马特! (3认同)