Avatar billede slott_hansen Nybegynder
03. oktober 2003 - 16:01 Der er 12 kommentarer og
1 løsning

response.sendRedirect med # virker ikke

Jeg forsøger at sende et redirect således:
response.sendRedirect("something.jsp?Id=" + request.getParameter("Id") + "#" + request.getParameter("accessoryId"));

Det virker i min MozillaFirebird browser, men IE siger:

500 Servlet Exception
java.lang.NumberFormatException: For input string: "1#3"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:435)
    at java.lang.Integer.parseInt(Integer.java:476)

Jeg har set på noget URL encoding, men det hjalp ikke!
Avatar billede arne_v Ekspert
03. oktober 2003 - 16:07 #1
Det er ikke en fejl i de linier men en fejl i something.jsp der forsøger
at noget ligende Integer.parseInt(request.getParameter("Id")) !
Avatar billede slott_hansen Nybegynder
03. oktober 2003 - 17:07 #2
Jammen hvis fejlen ligger i JSP delen, hvorfor fejler den så ikke når jeg bruger en Mozilla browser ??
Er vi ikke ude i noget med, at IE sender en anderledes url encodig som er anderledes end den mozilla sender ?
Avatar billede arne_v Ekspert
03. oktober 2003 - 18:11 #3
Hvad står der i adresse linie i henholdsvis Mozilla og IE ?
Avatar billede slott_hansen Nybegynder
03. oktober 2003 - 18:25 #4
der står præcis det samme. Jeg klippede klistrede fra mozilla til IE og BANG den fejlede...
Avatar billede arne_v Ekspert
03. oktober 2003 - 22:08 #5
Jeg har lavet en lille test med IE 5.5 og NS 7.1 - begge trunkerede
simpelthen # og alt efter væk !

Hvilken IE bruger du ?
Avatar billede slott_hansen Nybegynder
04. oktober 2003 - 11:08 #6
Det er den nyeste 6.0
Avatar billede arne_v Ekspert
04. oktober 2003 - 11:18 #7
Den opfører sig så tilsyneladende anderledes.

Men det er vel helle rikke hensigten, at accessoryID skal smides væk.

Skal something.jsp bruge både Id og accessoryId ?
Avatar billede slott_hansen Nybegynder
04. oktober 2003 - 11:23 #8
id fortæller siden hvilken data der skal vises og accessoryId en reference til et <a name=""> på siden.
Avatar billede arne_v Ekspert
04. oktober 2003 - 11:54 #9
OK, så er jeg med.

Og nu kan jeg også genskabe forskellen mellem NS 7.1 og IE 5.5.
Avatar billede slott_hansen Nybegynder
04. oktober 2003 - 11:56 #10
Det glæder mig :-)
Skummelt ikke !
Avatar billede arne_v Ekspert
04. oktober 2003 - 12:00 #11
Jeg har ikke den forgyldte løsning, men en måde at komme videre på er at
erstatte:

int id = Integer.parseInt(request.getParameter("Id"))

med:

String idstr = request.getParameter("Id");
int id = Integer.parseInt(idstr.substring(0, idstr.indexOf('#') >= 0 ? idstr.indexOf('#') : idstr.length()));
Avatar billede slott_hansen Nybegynder
06. oktober 2003 - 07:18 #12
ja det kunne man jo gøre - meeeen som du selv siger, så er det ikke noget optimal løsning!!!
Avatar billede arne_v Ekspert
06. oktober 2003 - 07:42 #13
Problemet er at IE sender request på en måde og Tomcat fortolker
request på en måde så #n bliver passed on som parameter.

Og det er der ikke så meget at gøre ved.

Eneste grund til at der ikke har rejst sig et rama-skrig er
vel at konstruktionen med ? og # er ret usædvanelig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Capgemini Danmark A/S

AI/Data Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Senior Data Engineers til dataplatform i Forsvaret