Solved

Struts2

Posted on 2010-09-15
9
1,044 Views
Last Modified: 2013-11-24
Hi,
I am calling my service method class from Action class. Than in Service method I am doing something like this.

ServletActionContext.getRequest().getSession().setAttribute("name", "results"); 
		ServletActionContext.getRequest().getSession().setAttribute("columnData", columns.getColumnNames());  
		ServletActionContext.getRequest().getSession().setAttribute("test", item.getItemData());
		ServletActionContext.getRequest().getSession().setAttribute("total", item.getTotal());

Open in new window


Than I access this attribute in jsp. How can I do this better way so my method returns all of this back to action class. Than access it in jsp.
0
Comment
Question by:shetty01
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
9 Comments
 
LVL 1

Expert Comment

by:kaustubhshobhan
ID: 33691435
Can you be more specific what exactly you are looking for?

Is this snippet of code your Service Code?
0
 

Author Comment

by:shetty01
ID: 33692209
Well basically instead of using those ServletContext code. What else I can do better so I can get all of those results in my jsp.

Currently I am doing this, so in jps I can just do request.getattribute and get this list...
0
 
LVL 1

Expert Comment

by:kaustubhshobhan
ID: 33698547
See in Struts2 You don't need to handle the context directly. What you need to do is declare variable put a value to it and then you can access it in the jsp.

Example Action Class

public class MyAction extends ActionSupport{
  private String myVal;

  public String getMyVal(){
    return this.myVal;
  }
  public void setMyVal(String myVal){
    this.myVal = myVal;
  }
  public String execute(){
    myVal = "testVal";
    return SUCCESS;
  }
}

Now in the Jsp you can access this property by using

<s:text name="myVal "/>

Important point.
1) When you have a property you want to access you will need to have both getters and setters.

When you come from an jsp request this myVal will be accessed by the setter to set the value. And when it forwards to a jsp it will use the getter to show the value in the jsp

Let me know if this works
0
 

Author Comment

by:shetty01
ID: 33700734
what we have is see below my comments in code

 public String execute(){
// here we call our service method,
action = "getResults";
user.setActionId(action);
//Above will invoke getResults method and do transaction

// In getResuts we are doing belowfor all our results, so we can do session.getAttribute in jsp and get all of our results. So how can I do this without using below. Whats the other way.
ServletActionContext.getRequest().getSession() .......


    return SUCCESS;
  }
0
 
LVL 29

Accepted Solution

by:
bloodredsun earned 500 total points
ID: 33753714
I suggest you implement SessionAware in your Action (and getter and setter). This means you can avoid doing all those ridiculous ServletActionContext.getRequest().getSession() calls

To extend a previous example Action Class

public class MyAction extends ActionSupport  implements SessionAware{

  private Map session;

  public void setSession(Map session) {
    this.session = session;
  }
 
  public Map getSession() {
    return session;
  }
  public String execute(){
    session.setAttribute(...);

    return SUCCESS;
  }
}
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
Although a lot of people devote their energy toward marketing for specific industries, there are some basic principles that can be applied to any sector imaginable. We’ll look at four steps to take and examine how those steps were put into action fo…
The viewer will get a basic understanding of what section 508 compliance can entail, learn about skip navigation links, alt text, transcripts, and font size controls.

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question