2017-03-12 1 views
0

私が行ってきた作業の一部として、Swiftアプリケーションで使用されているWebServicesを持つファイルが与えられました。私はWebServicesに慣れておらず、構文理解を通じてJavaだけを知っています。私はこれらの取得の1つを、迅速なアプリケーションからのパラメータで呼び出す必要があります。何よりも私が最初に理解しようとしているのは、関連するURLのパラメータを使ってこれらのWebサービスの1つを呼び出す方法です。例えばダウンI以下の方法url javaplayを通じてパラメータを設定する

http://localhost:9000/ListVehicleByPlateNumber 

を呼び出すしたいと私はURL経由のパラメータを指定したいと言う

http://localhost:9000/ListVehicleByPlateNumber?para="123" 

しかし、これはパラメータに任意の値を割り当てていないし、私のようなもの結果が得られない。関数に使用されている文字列が "123"になるようにハードコードすれば、私が探している結果が得られます。私はちょうど私が構文的に、URLを介してこのパラメータを渡すことができるかを知る必要があります。

ルートは、それは私自身の答えを見つけ

public List<NewVehicleModel> searchByPlateVehicle(String plateNumber){ 

    Transaction t = Ebean.beginTransaction(); 
    List<NewVehicleModel> vehicles = new ArrayList<>(); 
    try { 
     String sql = "SELECT V.idNewVehicle, V.VehicleType,V.PlateNumber,V.VehicleJurisdiction,V.State,V.Vin,V.Year, " + 
       "V.Make,V.modelos,V.RegistrationNumber,V.InsuranceCompany,V.PurchaseDate,V.ExpirationDate,V.idPersonaFK " + 
       "FROM NewVehicle V " + 
       "WHERE V.PlateNumber = :plateNumber"; 

     RawSql rawSql = RawSqlBuilder.parse(sql) 
       .columnMapping("V.idNewVehicle", "idNewVehicle") 
       .columnMapping("V.State", "state") 
       .columnMapping("V.VehicleType", "vehicleType") 
       .columnMapping("V.PlateNumber", "plateNumber") 
       .columnMapping("V.VehicleJurisdiction", "vehicleJurisdiction") 
       .columnMapping("V.Vin", "vin") 
       .columnMapping("V.Year", "year") 
       .columnMapping("V.Make", "make") 
       .columnMapping("V.modelos", "modelos") 
       .columnMapping("V.RegistrationNumber", "registrationNumber") 
       .columnMapping("V.InsuranceCompany", "insuranceCompany") 
       .columnMapping("V.PurchaseDate", "purchaseDate") 
       .columnMapping("V.ExpirationDate", "expirationDate") 
       .columnMapping("V.idPersonaFK", "idPersonaFK") 
       .create(); 

     Query<NewVehicleModel> query = Ebean.find(NewVehicleModel.class); 
     query.setRawSql(rawSql) 
       .setParameter("plateNumber", plateNumber); 
     vehicles = query.findList(); 
     t.commit(); 


    } 
catch (Exception e){ 
    System.out.println(e.getMessage()); 

}finally { 
     t.end(); 
    } 

    return vehicles; 

} 

答えて

0

と呼ばれています

GET  /ListVehicleByPlateNumber controllers.NewVehicle.listVehicleByPlateNumber(para: String ?="") 

コントローラ

public Result listVehicleByPlateNumber(String para){ 
    NewVehicleModel v = new NewVehicleModel(); 
    List<NewVehicleModel> vehiclesC = v.searchByPlateVehicle(para); 
    ObjectNode wrapper = Json.newObject(); 
    ObjectNode msg = Json.newObject(); 

    if(vehiclesC != null) { 
     msg.set("VehicleList", toJson(vehiclesC)); 
     wrapper.set("success", msg); 
     return ok(wrapper); 
    }else{ 
     msg.put("error", "There are no vehicles with the plate number"); 
     wrapper.set("error", msg); 
     return badRequest(wrapper); 
    } 
} 

を提出します。私はここでそれがルート

GET  /ListVehicleByPlateNumber/:para  controllers.NewVehicle.listVehicleByPlateNumber(para: Integer) 

コントローラー値123例えば

public Result listVehicleByPlateNumber(int para){ 
    String p = String.valueOf(para); 

URI形式でどのように見えるかだ文字列に整数からキャストすることになりました。

http://localhost:9000/ListVehicleByPlateNumber/123 
関連する問題