20. august 2002 - 19:21Der er
21 kommentarer og 1 løsning
Mangler et smart tip for at undgå null pointers...
Hvis man får på sin side skriver String a = request.getParameter("a"); if(a.equals("b") { bla bla }
Det kan jo ske at folk ikke har fyldt noget ud så der ikke kommer noget ind med b. Hvad gør i så for at undgå at det kan ske? Ligenu sender jeg en hidden value med over hvergang hvor jeg sætter b til "null" men man må da kunne lave noget fikst så den bare siger hvis b er null så er den heller ikke = a... Måske et dumt spørgsmål men hvad faen =)
/* * ParameterParser.java * * Created on 14. februar 2002, 18:47 */
package dk.disky.web;
import javax.servlet.http.*;
/** * * @author srr * @version */ public class ParameterParser { private static final String STRING_DEFAULT="TEST"; private static final int INT_DEFAULT=-1; private static final long LONG_DEFAULT=-1; private static final float FLOAT_DEFAULT=-1; private static final double DOUBLE_DEFAULT=-1; private static final boolean BOOLEAN_DEFAULT=false;
// Is private in order to make sure it can not be instantiated private ParameterParser() { }
String a = request.getParameter("a"); if("b".equals(a) { bla bla } som virker på samme måde som din kode, bortset fra at den ikke går ned, hvis parameteren er null.
hmmm, det kan vist komme ud på et. Faktisk mener jeg koden er mere læselig, hvis man f.eks. har noget halløj med
if () { } else if()
o.s.v
Jeg er dog enig i at din løsning er bedre, hvis man skal caste til int eller boolean eller noget tredje (men er det så ikke tæt på at være forretnings- og ikke præsentationslogik, som burde være et andet sted?)
hvis du tænker på hvad der skal være af kode på en JSP side, så skal der slet ikke være noget kode på en JSP side, men kun custom tags, men det er vist lidt udenfor dette spørgsmål.
i metoden public static String getString(HttpServletRequest request, String name, String def) { String temp=request.getParameter(name); if(temp==null || temp.equals("")) return def;
return temp; }
gider du da lige at forklare mig i hvilke situationer at udtrækning af en parameter fra en request kan give "" (tom streng)...
Så vidt jeg husker, så vil den altid returnere null, hvis der ikke er skrevet nogen værdi (as in 'foo.jsp?a=ABC&b=' ) hvor et forsøg på udtræk af parameteren 'b' vil returnere null...
bearhugx: Din metode ville også fejle, et String objekt er imutabelt, så getParameter returnerer et nyt objekt, eller helt korrekt manglen på et objekt, nemlig null.
Hmm den med "" kan jeg ikke lige huske hvor er der, jeg synes bare at kunne huske at det kunne opstår, er dog for træt til at tænke lige nu. Måske har du ret :)
Så vidt jeg husker, så vil den altid returnere null, hvis der ikke er skrevet nogen værdi (as in 'foo.jsp?a=ABC&b=' ) hvor et forsøg på udtræk af parameteren 'b' vil returnere null...
Nu kommer jeg helt i tvivl, men mener faktisk, at i eksemplet vil nogle webcontainere (weblogic5.1) returnere en tom streng, mens andre (oracle og vist nok også tomcat) vil returnere null.
Synes godt om
Ny brugerNybegynder
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.