使用TemplateRenderer的Jira-Servlet-Plugin

时间:2012-05-04 11:25:32

标签: plugins jira velocity jira-plugin

我正在尝试开发一个简单的HTTP-Servlet来渲染Velocity模板。

我的Servlet:

Map<String, Object> context = Maps.newHashMap();
resp.setContentType("text/html;charset=utf-8");
templateRenderer.render("/templates/test/input.vm", context, httpRespnse.getWriter());

Atlassian的-plugin.xml的

<webwork1 key="newactions1" name="New actions1" class="java.lang.Object">
    <actions>
        <action name="test.ActionAlpha" alias="FirstNewAction">
            <view name="success">/templates/test/input.vm</view>
            <view name="error">/templates/test/input.vm</view>
            <view name="input">/templates/test/input.vm</view>
        </action>
    </actions>
</webwork1>

(参见:https://developer.atlassian.com/display/JIRADEV/Plugin+Tutorial+-+Internationalising+Your+Plugin

到目前为止一切正常,但在页面渲染后,左侧的菜单栏丢失了(网页中的其他菜单 - 网站)

如果我手动在浏览器中调用URL,操作名称后面带有“!default”,则会显示侧栏。

http://host:port/jira/secure/FirstNewAction!default.jspa

但是如果我在没有“!default”的情况下调用URL,则输出与servlet生成的相同。 TemplateRenderer是否有可能添加“!default”术语?

1 个答案:

答案 0 :(得分:2)

我想

Map<String, Object> context = Maps.newHashMap();
templateRenderer.render("/templates/test/input.vm", context, httpRespnse.getWriter());

将空映射传递给render方法,如果省略context参数,则应传递包含webResources的默认上下文。另一个想法是添加像

这样的东西
meta name="decorator" content="atl.admin"

到头部