webForumDet fria alternativet

Lättare variant på request.getParameter

7 svar · 347 visningar · startad av Sunix

SunixMedlem sedan juli 2004307 inlägg
#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!

ViktorMedlem sedan aug. 20021 710 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

SunixMedlem sedan juli 2004307 inlägg
#3

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

ViktorMedlem sedan aug. 20021 710 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

AGMedlem sedan mars 20001 229 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

ViktorMedlem sedan aug. 20021 710 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

spangoMedlem sedan juni 20006 147 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.

ViktorMedlem sedan aug. 20021 710 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

128 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
125 ms — hämta tråd, inlägg och bilagor (db)