webForumDet fria alternativet

Lättare variant på request.getParameter

Java

7 svar · 347 visningar · startad av Sunix

Medlem sedan juli 2004310 inlägg
Frågan#1

Finns det någon lättare variant på request.getParameter.
Jag loopar ut ett formulär med olika antal kontroller på ena sidan och vill hämta dessa på nästa sida dynamiskt.

Finns det nåt sätt i jsp för att känna av hur många fält/kontroller ett formulär har för att sedan kunna bearbeta datat.

Hoppas ni förstår!

Medlem sedan aug. 20021 752 inlägg
#2

Du har ju request.getParameterNames() som retunerar alla parameter namn i en enumeration, sen har du request.getParameterMap() som retunerar namn/värde par i en map som du sedan kan iterera igenom som vanligt.

/Viktor

Medlem sedan juli 2004310 inlägg
#3

OOoohhh va bra !!
Snälla du kan du hjälpa iterera lite grann?

Medlem sedan aug. 20021 752 inlägg
#4

Denna kod skriver ut parameter namnet och värdet för alla parametrar som skickas till sidan,

<%@ page import="java.util.*"%>
<%
Map paramMap=request.getParameterMap();
Iterator iter=paramMap.keySet().iterator();
String name=null;
while(iter.hasNext())
{
	name=(String)iter.next();
	out.println("<br/>Param Name: " +name+", Value: "+((String[])paramMap.get(name))[0]);
}
%>

Värdet är sparat som en string array (String[]) det är därför vi måste specificera just vilket element som vi vill hämta ut, i 99% av fallen är det det första.

/Viktor

Medlem sedan mars 20001 266 inlägg
#5

Viktor väldigt smidig lista, dock har jag en fråga.
Hur får man till sorteringsordning på den, skulle vilja att den skriver ut den enligt den formulärsordning som var på sidan innan. Ifall det går smidigt skulle detta passa som en smidig bekräfta-sida.

tack
Andreas

Medlem sedan aug. 20021 752 inlägg
#6

Om du döper alla fält i bokstavsordning (den ordning som du vill att de ska visas) så borde denna kod fungera,

<%@ page import="java.util.*"%>
<%
Iterator iter=new TreeMap(request.getParameterMap()).values().iterator();
while(iter.hasNext())
{
	out.println("Value: "+iter.next());
}
%>

TreeMap är en sorterad map som sorterar på nyckeln, dvs namnet på fältet.

/Viktor

Medlem sedan juni 20008 205 inlägg
#7

... och om fälten inte är döpta i bokstavsordning, ligger du förmodligen brunt till. Jag är hyfsat säker på att det inte är specificerat någonstans att parametrarna i URL:en ska ligga i samma ordning som formulärelementen.

Medlem sedan aug. 20021 752 inlägg
#8

spango skrev:

... och om fälten inte är döpta i bokstavsordning, ligger du förmodligen brunt till. Jag är hyfsat säker på att det inte är specificerat någonstans att parametrarna i URL:en ska ligga i samma ordning som formulärelementen.

...och det var därför jag sa att fälten ska döpas i bokstavsordning :)

/Viktor

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)