Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Get a list of projectnames in velocity

Stefan Lindtner August 24, 2014

Hi am new to JIRA Development and have encountered my first Problem

I need to get a List of all Jira-Projects in something like a dropdown menu

This is my Java Code which simply renders the velocity

templateRenderer.render("serviceTime.vm", response.getWriter());

In my Velocity the code looks like this

<div class="field-group">
   <label for="dProj">Project</label>
      <select class="select" id="dProj" name="Projects">
  	#foreach ($pr in $projectManager.getProjectObjects())
                  <option>$pr.getName()</option>
        #end    
     </select>
</div>

But my selectmenu remains empty

do i miss something here ?

when i do a simple check in JAVA like...

for(int i = 0;i < projects.size(); i++){
        	
        	System.out.println(" Project : " + projects.get(i).getName());
        	
        }

it works, why not in the velocity

Best Regards

1 answer

1 accepted

1 vote
Answer accepted
Andreas Ebert
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 24, 2014

Your velocity template probably does not know about $projectManager. You have to add a reference to a ProjectManager to the velocity context.

What class is templateRenderer? Can it add objects to the velocity context?

I would use com.atlassian.jira.template.VelocityTemplatingEngine for that, e.g.:

import static com.atlassian.jira.template.TemplateSources.file;

VelocityTemplatingEngine templatingEngine = ComponentAccessor.getComponent(VelocityTemplatingEngine.class); // or constructor injection

Map<String, Object> velocityParams = ComponentAccessor.getVelocityParamFactory().getDefaultVelocityParams();
velocityParams.put("projectManager", ComponentAccessor.getProjectManager());

templatingEngine.render(file(pathToYourTemplate))
                .applying(velocityParams)
                .asPlainText(response.getWriter()); // or asHtml(...)

Stefan Lindtner August 24, 2014

i was using com.atlassian.templaterenderer.TemplateRenderer

but i got it now thank u...did not know the velocity needs a reference

Logan Clemons
Contributor
September 16, 2019

Can you send me a sample of your code?

Suggest an answer

Log in or Sign up to answer
TAGS
atlassian, jira product discovery, jpd premium, product management, idea management, product discovery, jira premium, product planning, atlassian community, product development, roadmap planning, product prioritization, feature management

Introducing Jira Product Discovery Premium ✨

Jira Product Discovery Premium is now available! Get more visibility, control, and support to build products at scale.

Learn more
AUG Leaders

Atlassian Community Events