This is cool.. I tried it out. However once the
chart_display.jsp is called the first time through the image tag. it does
not call the DisplayChart.action again to refresh the image with a new one
when clicked on the DrawChart.action. (I added the println statement in the
display method to find out that the div is not refreshing) I have to log
out and log in (invalidate session) to get the new chart. I am missing
something
public String display() throws Exception {
System.out.println("I AM IN THE DISPLAY NOW ");
Map attributes = ActionContext.getContext().getSession();
this.chart = (JFreeChart) attributes.get("CHART");
if(chart == null) {
return Constants.FORWARD_INVALIDACTION;
}
return Constants.FORWARD_SUCCESS;
}
private void setChart(JFreeChart chart){
Map attributes = ActionContext.getContext().getSession();
attributes.put("CHART", null);
this.chart = chart;
attributes.put("CHART", this.chart);
}
public JFreeChart getChart() {
return chart;
}
Leena Borle wrote:
>
> Hello,
> See if this helps you.
> I have a form with remote DIV which displays chart after user clicks on
> submit.
> Trick here is to generate chart object, store it in session and display it
> in separate JSP. Remove the form part if you want to display just the
> dynamic-DIV using Chart image.
>
> Form.jsp [
> <s:form>
> <s:url id="display_chart" value="DrawChart_draw.action"
> namespace="/user" />
>
> <s:submit value="Draw chart" href="%{display_chart}"
> theme="ajax" targets="*chart_div*" />
> <br />
> </s:form>
>
> <h4>Your Running Chart</h4>
> <div id="*chart_div*">
> </div> <!-- End display chart -->
> </div>
>
> ]
>
>
> display_chart.jsp [
> <body>
>
> /MyApp/user/DrawChart_display.action
> </body>
>
> ]
>
>
> struts.xml[
> <package name="user" extends
> ="struts-default,jfreechart-default">
> <!-- Separate method to draw and display due to Remote
> DIV/Button tag contsraints.
> -->
> <action name="DrawChart_input" method="input"
> class=".xxx.DrawChart">
> <result name="input">form.jsp </result>
> </action>
>
> <action name="DrawChart_draw" method="draw"
> class="xxx..DrawChart">
> <result name="success">/jsp/display_chart.jsp
> </result>
> </action>
> <action name="DrawChart_display" method="display"
> class="xxx.DrawChart">
> <result name="success" type="chart">
> 400
> 300
> </result>
> </action>
>
> </package>
> ]
>
>
> DrawChart.java [
> JFreeChart chart;
> public String draw() throws Exception {
> //chart creation logic.
> //generate chart object
> chart = ....
> session = ....
> session.put("CHART", chart);
> return success;
> }
>
> /**
> * returns chart obejct from the session.
> This methos is used by display_chart.jsp
> */
> public String display() throws Exception {
> session = ...get session ...
> this.chart = (JFreeChart) session.get("CHART");
> if(chart == null) {
> addActionError(getText("error.nochart"));
> return ERROR;
> }
> return SUCCESS;
> }
>
> // this method will get called if we specify chart
> public JFreeChart getChart() {
> return chart;
> }
>
> /**
> * <p> input action
> */
> public String input() throws Exception {
> return INPUT;
> }
>
> ]
>
>
>
> Leena
>
>
--
View this message in context:
http://www.nabble.com/Struts-2-And-JFreeChart-tp18740589p18857105.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]