I am creating a new chart using the ChartFactory

chart = ChartFactory.createBarChart
                  (reportname,xaxis, yaxis, dataset, 
                   PlotOrientation.VERTICAL, true,true, true);

return chart;
 
and I am storing it in the session. However the DisplayChart.action that is
in the image src is not called the second time on. It seems like a caching
issue. 



Leena Borle wrote:
> 
> Hi,
>   How are you creating new chart object ? For me every time user clicks on
> submit-DrawChart_draw,action  will create New chart object (e.g.
> chart=ChartFactory.createBarChart)  and store it in the session which
> afterwards is used by DIV(DrawChart_display.action). You need to refresh
> your chart object.
> Leena
> 
> On Wed, Aug 6, 2008 at 11:36 AM, dynamicd <[EMAIL PROTECTED]> wrote:
> 
>> 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]
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Struts-2-And-JFreeChart-tp18740589p18860659.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]

Reply via email to