JAX RS – 12 – @FormParam & @Form
Merhaba Arkadaslar
Bu bolumde @FormParam ve @Form annotation’larini inceleyecegiz.
PersonResource.java
package _06.formParam.service; import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; @Path("/person-formParam") public class PersonResource { @POST @Path("/addPerson") public String addPerson(@FormParam("name") String name, @FormParam("surname") String surname) { String message = "addPerson is called. " + "Welcome , " + name + " " + surname; return message; } }
Dikkat edecek olursak @POST annotation’ini kullandik. @FormParam annotation ile formdaki ilgili form parametrelerine erisim saglayabiliriz.
The @javax.ws.rs.FormParam annotation is used to access application/x-www-form- urlencoded request bodies.
When the input request body is of the type "application/x-www-form-urlencoded", a.k.a. an HTML Form, you can inject individual form parameters from the request body into method parameter values.
Ornegimizi test etmek icin Desktop’ta basit bir HTML form olusturabiliriz ;
persons-jersey.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>@FormParam Example</title> </head> <body> <form id="form1" action="http://localhost:8080/injavawetrust.jersey.tutorial/person-formParam/addPerson" method="post"> <div> </div> <table> <tr> <td align="right">Name :</td> <td><input type="text" name="name" /></td> </tr> <tr> <td align="right">Surname : </td> <td><input type="text" name="surname" /></td> </tr> <tr> <td><input type="submit" value="Submit"/></td> </tr> </table> </form> </body> </html>
Benzer sekilde action kismini resteasy projesine gonderecek sekilde degistirip test edebiliriz.
<form id="form1" action="http://localhost:8080/injavawetrust.resteasy.tutorial/person-formParam/addPerson" method="post">
Ya da onceki bolumlerde ekledigimiz REST plugin’leri araciligiyla HTTP POST istegini data form bilgilerini ekleyerek gonderebiliriz.
Bir baska ornek olarak @Form annotation’ini kullanabiliriz. Bu annotation sadece RESTEasy icin gecerlidir.
Person.java
package _06.formParam.model; import javax.ws.rs.FormParam; public class Person { @FormParam("name") private String name; @FormParam("surname") private String surname; //getters and setters //toString }
@Form annotation’ini import org.jboss.resteasy.annotations.Form olarak import ediyoruz.
PersonResource.java
package _06.formParam.service; import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; import org.jboss.resteasy.annotations.Form; import _06.formParam.model.Person; @Path("/person-formParam") public class PersonResource { @POST @Path("/addPerson") public String addPerson(@FormParam("name") String name, @FormParam("surname") String surname) { String message = "addPerson is called. " + "Welcome , " + name + " " + surname; return message; } @POST @Path("/addPersonModel") public String addPersonModel(@Form Person person) { String message = "addPersonModel is called."; return message + " " + person.toString(); } }
persons-resteasy-formparam.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>@Form Example</title> </head> <body> <form id="form1" action="http://localhost:8080/injavawetrust.resteasy.tutorial/person-formParam/addPersonModel" method="post"> <div> </div> <table> <tr> <td align="right">Name :</td> <td><input type="text" name="name" /></td> </tr> <tr> <td align="right">Surname : </td> <td><input type="text" name="surname" /></td> </tr> <tr> <td> <input type="submit" value="Submit"/> </td> </tr> </table> </form> </body> </html>
Github kaynak kodlar / source folder
injavawetrust.resteasy
injavawetrust.jersey
Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6 Web Component Developer
Leave a Reply