Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

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

Ashish Biswal February 25, 2019

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

Suggest an answer

Log in or Sign up to answer
1 vote
Mizan
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.
March 13, 2019

Ashish 

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){

myParameterName=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

Ashish Biswal March 13, 2019

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 .

0 votes
Ashish Biswal March 13, 2019

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 

0 votes
Alexey Matveev
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.
February 25, 2019

Hello,

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.

Ashish Biswal February 25, 2019

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>
</select>

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 ?

Ashish Biswal February 25, 2019

@Alexey Matveev  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.

Ashish Biswal February 25, 2019

Could you please help with the same?

Alexey Matveev
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.
February 25, 2019

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

Ashish Biswal February 25, 2019

Thanks for the idea working on the same

Ashish Biswal March 13, 2019

@Alexey Matveev  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"> 
<actions>
<action name="com.example.plugins.tutorial.DueDateIndicator" alias="DueDate">
<view name="stayhere">\templates\due-date-indicator.vm</view>
</action>
</actions>
</webwork1>

 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>
</select>
<input type="submit">
</form>

java :-

class Outer extends AbstractJiraContextProvider {

class Inner extends JiraWebActionSupport {

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

}

Inner inner = new Inner()

inner.doExecute()

}

Ashish Biswal March 13, 2019

@Alexey Matveev Can you please help ?

TAGS
AUG Leaders

Atlassian Community Events