通过url javaplay设置参数

通过url javaplay设置参数,java,web-services,url,get,playframework-2.0,Java,Web Services,Url,Get,Playframework 2.0,因此,作为我所做工作的一部分,我得到了一个包含Web服务的文件,这些Web服务正在Swift应用程序中使用。我对Web服务不熟悉,只通过语法理解了解Java。我需要使用swift应用程序中的参数调用其中一个GET。我首先要弄清楚的是,如何使用与之关联的URL中的参数调用其中一个Web服务。例如,下面我想调用这个方法 http://localhost:9000/ListVehicleByPlateNumber 我想通过URL指定参数,比如 http://localhost:9000/ListVe

因此,作为我所做工作的一部分,我得到了一个包含Web服务的文件,这些Web服务正在Swift应用程序中使用。我对Web服务不熟悉,只通过语法理解了解Java。我需要使用swift应用程序中的参数调用其中一个GET。我首先要弄清楚的是,如何使用与之关联的URL中的参数调用其中一个Web服务。例如,下面我想调用这个方法

http://localhost:9000/ListVehicleByPlateNumber
我想通过URL指定参数,比如

http://localhost:9000/ListVehicleByPlateNumber?para="123"
但这不会给参数赋值,我也不会得到结果。如果我硬编码使函数中使用的字符串为=“123”,它将给出我要查找的结果。我只需要知道如何通过url传递这个参数,语法方面的

路由文件

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);
    }
}
public Result listVehicleByPlateNumber(int para){
    String p = String.valueOf(para);
公共结果列表VehicleByplateNumber(字符串段落){
NewVehicleModel v=新的NewVehicleModel();
列表车辆C=v.SearchByPlate车辆(第段);
ObjectNode包装器=Json.newObject();
ObjectNode msg=Json.newObject();
如果(车辆C!=null){
msg.set(“VehicleList”,toJson(vehiclesC));
wrapper.set(“success”,msg);
返回ok(包装器);
}否则{
msg.put(“错误”,“没有车牌号的车辆”);
wrapper.set(“错误”,msg);
返回请求(包装器);
}
}
它叫哪里

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;

}
公共列表按PlateVehicle搜索(字符串plateNumber){
事务t=Ebean.beginTransaction();
列出车辆=新的ArrayList();
试一试{
String sql=“选择V.idNewVehicle、V.VehicleType、V.PlateNumber、V.VehicleJuritory、V.State、V.Vin、V.Year,”+
“V.Make,V.modelos,V.RegistrationNumber,V.InsuranceCompany,V.PurchaseDate,V.ExpirationDate,V.idPersonaFK”+
“来自NewVehicle V”+
“其中V.PlateNumber=:PlateNumber”;
RawSql=RawSqlBuilder.parse(sql)
.列映射(“V.idNewVehicle”、“idNewVehicle”)
.列映射(“V.State”、“State”)
.列映射(“V.VehicleType”、“VehicleType”)
.列映射(“V.PlateNumber”、“PlateNumber”)
.列映射(“V.车辆管辖权”、“车辆管辖权”)
.列映射(“V.Vin”、“Vin”)
.列映射(“V.Year”、“Year”)
.列映射(“V.Make”、“Make”)
.columnMapping(“V.modelos”、“modelos”)
.列映射(“V.RegistrationNumber”、“RegistrationNumber”)
.列映射(“V.InsuranceCompany”、“InsuranceCompany”)
.列映射(“V.PurchaseDate”、“PurchaseDate”)
.列映射(“V.ExpirationDate”、“ExpirationDate”)
.columnMapping(“V.idPersonaFK”、“idPersonaFK”)
.create();
Query=Ebean.find(NewVehicleModel.class);
query.setRawSql(rawSql)
.setParameter(“板材编号”,板材编号);
vehicles=query.findList();
t、 提交();
}
捕获(例外e){
System.out.println(e.getMessage());
}最后{
t、 end();
}
返回车辆;
}

找到了我自己的答案。我最终将整数转换为字符串,下面是它在路由中的外观

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

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);
    }
}
public Result listVehicleByPlateNumber(int para){
    String p = String.valueOf(para);
值123的URI格式示例

http://localhost:9000/ListVehicleByPlateNumber/123