Solved

Struts2

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

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

Suggested Solutions

I've been asked to discuss some of the UX activities that I'm using with my team. Here I will share some details about how we approach UX projects.
Developer portfolios can be a bit of an enigma—how do you present yourself to employers without burying them in lines of code?  A modern portfolio is more than just work samples, it’s also a statement of how you work.
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

773 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