I have created a servlet that renders a table. Every row of this table has on its right side a button. This button has a onclick event defined:
onclick=window.location='../../../jira/secure/PersonUpdateAction.jspa?action=update&id=$id'>
The PersonUpdateAction is a webwork item that exends the JiraWebActionSupport. The doExecute method is invoked:
@Override
public String doExecute() {
try {
HttpServletRequest request = this.getHttpRequest();
IInsertUpdateHelper insertUpdateHelper = InsertUpdateHelperFactory.getInstance(i18nHelper, userManager);
Map<String, Object> context = insertUpdateHelper.doAction(request);
this.personBean = (PersonBean)context.get("personBean");
} catch (DataAccessException e) {
LOGGER.debug("catastrophe2: ", e);
}
return SUCCESS;
}
My problem is that after the doExecute in my velocity for testing:
<html>
<head>
<meta name="decorator" content="atl.admin">
</head>
<body>context: ${requestContext.baseUrl}</body>
</html>
nothing is shown. The requestContext.baseUrl is empty, the decorator does not show anything. I can not access anything that Jira normally provides.
Seems like the servlet context does not have everything I need. The following seems to work for me:
final Map<String, Object> defaultParams = JiraVelocityUtils.getDefaultVelocityParams(jiraAuthenticationContext);
final Map<String, Object> additionalParams = new HashMap<String, Object>(defaultParams);
additionalParams.put("baseurl", this.applicationProperties.getString(APKeys.JIRA_BASEURL));
response.setContentType("text/html;charset=utf-8");
templateRenderer.render("contacts.vm", additionalParams, response.getWriter());
Then I access it via ${baseurl}. The decorator works also now.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.