# Get-Parameter auslesen



## purzel (30. Mrz 2010)

Hallo,

ich sitze nun seit geschlagenen 2 Tagen an diesem Problem und google konnte mir bis jetzt nicht helfen, ich hoffe ihr könnt es 

Ich will in einer MangedBean in JSF Get-Parameter auslesen. folgender Code sollte es veranschaulichen:


```
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String newsid = request.getParameter("newsid");
String screenshotsid = request.getParameter("screenshotsid");
String wertungenid = request.getParameter("wertungenid");
String chartsid = request.getParameter("chartsid");

if(newsid.length() > 0) {
    getpara = newsid; // funktioniert, Wert wird zurückgegeben!
} else if(screenshotsid.length() > 0) {
    getpara = screenshotsid; // ab hier kommt nur noch java.lang.NullPointerException!
} else if(wertungenid.length() > 0) {
    getpara = wertungenid;
} else if(chartsid.length() > 0) {
    getpara = chartsid;
} else {
    getpara = "";
}
```


----------



## Noctarius (30. Mrz 2010)

Vermutlich heißt der Parameter anders oder wird nicht mitgeschickt.


----------



## purzel (30. Mrz 2010)

Noctarius hat gesagt.:


> Vermutlich heißt der Parameter anders oder wird nicht mitgeschickt.



diese Parameter gibt es alle, nur wird komischerweise nur der erste genommen :bahnhof:


----------



## Final_Striker (30. Mrz 2010)

Dann wären sie aber nicht null ;-)

Schon mal getParameterNames ausprobiert, damit bekommst du die Namen alles Parameter.


----------



## purzel (30. Mrz 2010)

Auf das getParameterNames bin ich noch nicht gekommen, werde ich mal testen und melde mich dann wieder!

Ich habe das jetzt erstellt, nur leider bekomme ich keine Ausgabe davon!


```
public void doPost(HttpServletRequest request, HttpServletResponse res) throws IOException, ServletException {
    Enumeration e = request.getParameterNames();
    PrintWriter out = res.getWriter ();
    while (e.hasMoreElements()) {
        String name = (String)e.nextElement();
        String value = request.getParameter(name);
        out.println(name + " = " + value);
    }
}
```

//Edit: bekomme jetzt folgende Fehlermeldung:

javax.servlet.ServletException: Uncompilable source code - cannot find symbol
  symbol:   variable name


----------



## Noctarius (30. Mrz 2010)

Final_Striker hat gesagt.:


> Dann wären sie aber nicht null ;-)
> 
> Schon mal getParameterNames ausprobiert, damit bekommst du die Namen alles Parameter.



Klar wenn der nicht mitgeschickt wird ist er nicht in der internen Map. Ist er nicht in der Map gibt's passend zum Key ein null


----------



## purzel (6. Apr 2010)

mh, ich komm einfach nicht drauf warum die anderen Parameter nicht gehen wollen. Naja ich werde mich erstmal einem anderen Thema widmen und kümmere mich um die anderen Dinge, damit die Seite auch schön weiterentwickelt wird.


----------



## freez (15. Apr 2010)

Hm, also grundlegend würde ich die Strings auch mal auf 'null' abfragen und entsprechend darauf reagieren. Es kann aus irgendwelchen Gründen immer passieren, dass ein Parameter nicht sauber übergeben wird. Und da sollte deine Anwendung darauf reagieren, wenn du sie Händisch ausliest.

So zu dem NullPointerProblem: wie sieht denn dein URL oder HTML Formular aus, der die Parameter enthält?


----------



## purzel (17. Apr 2010)

freez hat gesagt.:


> Es kann aus irgendwelchen Gründen immer passieren, dass ein Parameter nicht sauber übergeben wird. Und da sollte deine Anwendung darauf reagieren, wenn du sie Händisch ausliest.



Wie kann man denn das übergehen das die Parameter "unsauber" übergeben werden?



freez hat gesagt.:


> So zu dem NullPointerProblem: wie sieht denn dein URL oder HTML Formular aus, der die Parameter enthält?



meine URL sieht folgendermaßen aus:


```
http://www.meineurl.de/News.jsf?newsid=12345
```

das HTML ist so aufgebaut mit URI:

```
<a href="News.jsf?newsid=12345" target="_self">News</a>

und 

<a href="News.jsf?screenshotsid=12345" target="_self">Sreenshots</a>

...
```


----------

