Solved

Struts2

Posted on 2010-09-15
9
1,036 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
  • 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

How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

Question has a verified solution.

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

Suggested Solutions

Because your company can’t afford for you to make SEO mistakes, you’ll want to ensure you’re taking the right steps each and every time you post a new piece of content. This list of optimization do’s and don’ts can help you become an SEO wizard.
Color can increase conversions, create feelings of warmth or even incite people to get behind a cause. If you want your website to really impact site visitors, then it is vital to consider the impact color has on them.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

838 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