Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
Community Members
Community Events
Community Groups

How to call the java file method and pass values to it from the velocity template ?


I have a select field whose values I need in the Java file, so how can i pass the current selected value from velocity to java file

3 answers

1 vote
Mizan Rising Star Mar 13, 2019


If you want to pass calue from velocity to webwork action class you need to do the below

1. In the velocity have the html element name eg : <select name= myParameterName >

(This is just a psuedo code)


2. In your java class declare a private variable

Private String myParameterName;

As you must have observed the name is same in velocity file and java file.

3. Now create getter and setter methods in your java class

String getMyParameterName(){

Return myParameterName;


Void setMyParameterName(String myParameterName){



Now when on submit from velocity when you call this action the parameters are available using getMyParameterName()


This is feature of webwork. Similarly multiple parameters can be accessed in the action class. 


Hope this helps

The submit action url as set above redirects me to a different page which appears to be dead. How can I stay on the same page and perform the action without being redirected @Mizan .

The submit action url redirects me to different page which says dead page how can I have the action url set to stay on the same page 


If your velocity is not for validators, conditions, webworks and so on, then you would need to execute a rest call to pass parameters from a velocity template.

My Template File looks like:-

<select id="parent" name="parent_version">
<option selected="selected" value="CONF">Confluence</option>
<option value="JIRA">JIRA</option>
<option value="JAG">JIRA Agile</option>
<option value="CAP">JIRA Capture</option>
<option value="AUI">AUI</option>

My java file looks Like:-

class Outer extends JiraContextProvider{

class Inner extends JiraWebActionSupport {

public String doExecute(){}



So I have to make a rest call from the velocity to the doExecute method ?

Could you please help me with any sample code so that i can have a crystal clear understanding how the communication will work ?

@Alexey Matveev _Appfire_  I have made the post call from the velocity passing the data within it, but I am not clear how are we going to catch and use it in the inner class method.

Could you please help with the same?

I gave you general ideas. Unfortunately, I do not have time to make your code work.

Thanks for the idea working on the same

@Alexey Matveev _Appfire_  I am making use of the Webwork to pass values but unfortunately that is not working.

xml :-

 <webwork1 key="passValue" name="Quick Create User Issue" class="java.lang.Object"> 
<action name="com.example.plugins.tutorial.DueDateIndicator" alias="DueDate">
<view name="stayhere">\templates\due-date-indicator.vm</view>

 velocity :-

<form class="aui" name="input" action="http://localhost:2990/jira/secure/DueDate.jspa" method="post">
<select id="parent" name="execute" >
<option selected="selected" value="CONF">Confluence</option>
<option value="JIRA">JIRA</option>
<option value="BAM">Bamboo</option>
<option value="JAG">JIRA Agile</option>
<option value="CAP">JIRA Capture</option>
<option value="AUI">AUI</option>
<input type="submit">

java :-

class Outer extends AbstractJiraContextProvider {

class Inner extends JiraWebActionSupport {

public String doExecute(){
    String[] vals = request.getParameterValues("val");
    return vals[0];


Inner inner = new Inner()



Suggest an answer

Log in or Sign up to answer

Atlassian Community Events