Struts RequestAware and FreeMarker

Q

Q1tum

Hi all,

I started learning JSP / Java. At the moment I have a problem and
could not find the solution on the internet, I hope someone can reply
to my post with a sollution:

My problem is that I'm not able to get Post or Get variables within a
Freemarker template file.

I'm extending a Class that is SessionAware and RequestAware:

public class TutorialSupport extends ActionSupport
implements RequestAware, SessionAware {

private Map Session = null;
private Map Request = null;

public Map getSession() {
return Session;
}

public void setSession(Map Session) {
this.Session = Session;
}

public Map getRequest() {
return Request;
}

public void setRequest(Map request) {
this.Request = request;
}
}

public class MessageAction extends TutorialSupport {
.....
.....
}

In the template file I use the following to access the Session Map:

${Session.login.getLogin()}

This works fine and displays my login name.

But when I want to try the same with ${Request.id}

The URL I used was messages.action?id=1, so I thought that $
{Request.id} would display 1. but I get an Exception:

Expression Request.id is undefined on line 12, column 3 in ftl/
messages.ftl.

When I display ${Request} in the template I get this Exception:

Error on line 12, column 3 in ftl/messages.ftl
Expecting a string, date or number here, Expression Request is instead
a freemarker.ext.servlet.HttpRequestHashModel

I hope my issue is explained good and someone can give me the solution
about how to display POST and GET variables in a FreeMarker Template.

Regards,

Q1tum
 
Q

Q1tum

Hi all,

I started learning JSP / Java. At the moment I have a problem and
could not find the solution on the internet, I hope someone can reply
to my post with a sollution:

My problem is that I'm not able to get Post or Get variables within a
Freemarker template file.

I'm extending a Class that is SessionAware and RequestAware:

public class TutorialSupport extends ActionSupport
implements RequestAware, SessionAware {

private Map Session = null;
private Map Request = null;

public Map getSession() {
return Session;
}

public void setSession(Map Session) {
this.Session = Session;
}

public Map getRequest() {
return Request;
}

public void setRequest(Map request) {
this.Request = request;
}

}

public class MessageAction extends TutorialSupport {
....
....

}

In the template file I use the following to access the Session Map:

${Session.login.getLogin()}

This works fine and displays my login name.

But when I want to try the same with ${Request.id}

The URL I used was messages.action?id=1, so I thought that $
{Request.id} would display 1. but I get an Exception:

Expression Request.id is undefined on line 12, column 3 in ftl/
messages.ftl.

When I display ${Request} in the template I get this Exception:

Error on line 12, column 3 in ftl/messages.ftl
Expecting a string, date or number here, Expression Request is instead
a freemarker.ext.servlet.HttpRequestHashModel

I hope my issue is explained good and someone can give me the solution
about how to display POST and GET variables in a FreeMarker Template.

Regards,

Q1tum

I found another solution to get all GET parameters within a FreeMarker
template, the solution is shown below:

Assuming that URL example.action?id=1 is used you are able to get '1'
with the following tag: ${parameters.get('id')[0]}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,043
Latest member
CannalabsCBDReview

Latest Threads

Top