2015-03-28 17 views
14

Jestem całkiem nowy z tymi wszystkimi rzeczami, ale mam nadzieję, że możecie mi pomóc zrozumieć, jak to działa. Mam formularz z polem. Jak mogę odzyskać dane od klienta? Szukałem informacji, ale nie mogłem znaleźć.Jak uzyskać dane z formularza za pomocą programu iskra java?

<form action="Dispatcher" method="post"> 
    <fieldset> 
     <p>Name</p> 
     <input type="text" name="userName" required="true"> 

     <p>Email</p> 
     <input type="text" name="userEmail" required="true"> 
     <input type="submit" value="submit"> 
    </fieldset> 
</form> 
+0

Czy któraś z odpowiedzi zadziałała prawidłowo? –

Odpowiedz

3

Myślę, że trzeba użyć request.params("userName") który daje listę parametrów złożonych z nazwą userName

13

I w obliczu tego samego problemu. Kiedyś queryParams go rozwiązać:

request.queryParams("userName") 
+10

Pamiętaj, że musisz się upewnić, że 'request.body()' nie jest wywoływane wcześniej (na przykład do celów rejestrowania), w przeciwnym razie pochłonie ciało, param formularza nie zostanie przeanalizowane. W tym przypadku brakowało javadoc. – Brice

+0

To jest dziwne. Oczekiwano, że request.params ("userName") zwróci wartość, ale zamiast tego request.queryParams ("userName") daje tę samą wartość. Myślałem, że queryParams ma zwracać ciągi zapytań. Czy to normalne zachowanie iskierki java? – Raf

+2

@Raf ** Czy to normalne zachowanie iskierki java? ** Nazywasz to: jest to * dziwne * zachowanie iskierki java. – Stephan

-1

myślę lepiej wykorzystywać ramy js jak angularjs lub jQuery do konwersji danych z formularza do JSON przed wysłaniem go do serwera.

3

Dla przypomnienia, stanąłem przed podobnym problemem i to, jak go rozwiązałem.

Ponieważ jest to wieloczęściowy żądanie, trzeba będzie określić, że

MultipartConfigElement multipartConfigElement = new MultipartConfigElement(path); 

req.raw().setAttribute("org.eclipse.jetty.multipartConfig", multipartConfigElement); 

można znaleźć szczegółowe informacje o SparkJava: Upload file did't work in Spark java framework

Gdy to zrobione poprawnie powinieneś być w stanie access the data using query params jak wspomniano Stephan.