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.