无法从Velocity模板中提取列表

时间:2018-11-02 16:13:28

标签: java velocity jira-plugin atlassian-plugin-sdk

我正在JIRA插件中创建工作流发布函数,但是在速度模板方面遇到问题。

我有一个Velocity模板,试图允许用户选择多个JIRA项目类别;

<table cellpadding="2" cellspacing="2">
    #foreach ($projectCategory in $projectCategories)
        <tr>
            <td><input type="checkbox" name="projectCategories" value="$projectCategory.getId()"
                #if (${selectedProjectCategories})
                    #if (${selectedProjectCategories.contains($projectCategory.getId())})
                       CHECKED
                    #end
                #end
            ></td>
            <td>#displayConstantIcon ($projectCategory) $projectCategory.getName()</td>
        </tr>
    #end
</table>

通过为每个复选框使用相同的“名称”属性,我可以从参数中访问所有选定的ID;

public Map<String, Object> getDescriptorParams(Map params) {

    if (params != null && params.containsKey("projectCategories")){
        return MapBuilder.build( "projectCategories", params.get("projectCategories"));
    }

    return MapBuilder.build( "projectCategories", new ArrayList<String>());
}

但是,当我随后通过“ FunctionDescriptor”提取它们时,ArrayList现在是一个字符串,并且我无法访问原始值;

functionDescriptor.getArgs().get("projectCategories")

有什么主意我做错了吗?为了解决这个问题,我不得不使用以公共字符串作为前缀的唯一“名称”属性,然后提取参数中具有以公共字符串开头的键的每个条目。这真让我闻起来!

0 个答案:

没有答案