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] > >