Ввод параметров в контекст скорости в Jira 4.4 - PullRequest
2 голосов
/ 23 декабря 2011

Я разрабатываю плагин для отображения дополнительной информации, связанной с проектом.

Поэтому я разрабатываю модуль панели вкладок проекта, но на моей странице не отображаются параметры, которые я поместил в контекст скорости.

Вот часть плагина xml:

<project-tabpanel key="stats-tab-panel" name="Stats Tab Panel" i18n-name-key="stats-tab-panel.name" class="it.pride.jira.plugins.StatsTabPanel">
<description key="stats-tab-panel.description">The Stats Tab Panel Plugin</description>
<label key="stats-tab-panel.label"></label>
<order>10</order>
<resource type="velocity" name="view" location="templates/tabpanels/stats-tab-panel.vm"/>

Вот вместо этого полезная часть моего класса:

public class StatsTabPanel   extends GenericProjectTabPanel {

public StatsTabPanel(JiraAuthenticationContext jiraAuthenticationContext,
        FieldVisibilityManager fieldVisibilityManager) {
    super(jiraAuthenticationContext, fieldVisibilityManager);
    // TODO Auto-generated constructor stub

}


public String testvalue="112002";

@Override
public boolean showPanel(BrowseContext context){
    return true;
}

@Override
public Map<String, Object> createVelocityParams (BrowseContext context) {
    Map<String, Object> contextMap = createVelocityParams(context);
    contextMap.put("testvalue", testvalue);
    return contextMap;
}

}

Итак, как и в этом случае, когда я пишу `$ testvalue в моем шаблоне, число не отображается.

Что я делаю не так?

1 Ответ

1 голос
/ 23 декабря 2011

Проблема в том, что метод getHtml, который используется для возврата HTML-кода для вкладки, имеет карту Map, которая является контекстом Velocity, но содержит только параметры в объекте BrowseContext.Способ исправить это - переопределить createVelocityParams в вашем классе, например,

Защищенная карта createVelocityParams (final BrowseContext ctx) {Map params = super.createVelocityParams (ctx);params.put («myparam», «некоторое значение для него»);возврат параметров;}

Проблема в том, что метод защищен, поэтому я также переопределил getHtml, который вызывает createVelocityParams в родительском классе.

Некоторые вкладки Project расширяют GenericProjectTabPanel, но некоторые, такие как SummaryProjectTabPanel.java, похоже, используютФрагменты пользовательского интерфейса.Я подозреваю, что фрагменты - это то, к чему движутся вещи.

...