Thanks Steven, I just inserted this into the CVS version! Thanks for your work!
Henner > -----Ursprüngliche Nachricht----- > Von: Steven Law [mailto:[EMAIL PROTECTED] > Gesendet: Freitag, 20. Mai 2005 02:26 > An: [EMAIL PROTECTED] > Cc: jdbforms-interest@lists.sourceforge.net > Betreff: Re: AW: [dbforms] Position not encoded after update or insert > > I'm pretty sure that the encode is encoding the '%'. My > situation is a list page with edit links to a detail form. > The edit link with the position that has a key that contains > the '%' worked. But followups from the detail form back to > the list page didn't. > > On further investigation, GotoEvent::processEvent is > decoding the position. On the edit link, the position has not > been decoded before the processEvent, so that works as is. > But on a followup, the position coming from DbFormsTag has > already been decoded before it is passed to the constructor > of GotoEvent. So as a patch I encoded it in the constructor. > > Also had to encode the new position in InsertEvent after a > new record is created. > > GotoEvent.java: > > /** > * This constructor is not called by the controller but, > actually, BY THE > * VIEW for example if the FormTag "gotoPrefix" attribute > is set an a > * GotoEvent needs to be instanciated. > * > * @param table the input table > * @param request request the request object > * @param config the config object > * @param position the position string > */ > public GotoEvent(Table table, HttpServletRequest request, > DbFormsConfig config, String position) { > super(table, request, config); > this.position = > table.getKeyPositionString(table.getFieldValues(position)); > > // CAPIO - encode the position string, cause processing > it will decode it. > try { > this.position = Util.encode(this.position, > getRequest().getCharacterEncoding()); > } catch (UnsupportedEncodingException e) { > logCat.error(e); > } > } > > And added into InsertEvent.java > > // Show the last record inserted > String firstPosition = > getTable().getPositionString(fieldValues); > > // CAPIO - must encode the position as it gets > decoded when read. > try { > firstPosition = Util.encode(firstPosition, > getRequest().getCharacterEncoding()); > } catch (UnsupportedEncodingException ex) { > logCat.error(ex); > throw new SQLException(ex.getMessage()); > } > > logCat.debug("pos-> " + firstPosition); > getRequest().setAttribute("firstpos_" + getTable().getId(), > firstPosition); > > I'm not sure where else in the code that there might be a > mismatch between encoding/decoding, but other functions that > we use work ok with these keys. > > Steve > > ---- Henner Kollmann <[EMAIL PROTECTED]> wrote: > > > > > That's a real problem. Encoding of html strings uses the % > sign as encoding > > > letter. > > > Could you try to change the Util.decode / Util.encode methods > to change the > > > % to an double %%? > > > > > > Maybe this helps.... > > > > > > Thanks, > > > Henner > > > > > > > -----Ursprüngliche Nachricht----- > > > > Von: Steven Law [mailto:[EMAIL PROTECTED] > > > > Gesendet: Freitag, 13. Mai 2005 09:06 > > > > An: jdbforms-interest > > > > Betreff: [dbforms] Position not encoded after update or insert > > > > > > > > I have a record that has a key with a value that ends with a > > > > percent character. When this record is updated I get a > > > > java.lang.StringIndexOutOfBoundsException when the list page > > > > tries to display the record because firstposition and > > > > lastposition have not been encoded. > > > > > > > > I can't find the code where these values are being set for > > > > the followup after the update event. Also happens if I insert > > > > a similar record. > > > > > > > > > > > > ------------------------------------------------------- > > > > This SF.Net email is sponsored by Oracle Space Sweepstakes > > > > Want to be the first software developer in space? > > > > Enter now for the Oracle Space Sweepstakes! > > > > http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click > > > > _______________________________________________ > > > > DbForms Mailing List > > > > > > > > http://www.wap-force.net/dbforms > > > > > > > > > > > > > > ------------------------------------------------------- This SF.Net email is sponsored by Oracle Space Sweepstakes Want to be the first software developer in space? Enter now for the Oracle Space Sweepstakes! http://ads.osdn.com/?ad_idt12&alloc_id344&op=click _______________________________________________ DbForms Mailing List http://www.wap-force.net/dbforms