【问题标题】:Setting Parameters through url javaplay通过 url javaplay 设置参数
【发布时间】:2017-03-12 20:13:32
【问题描述】:

所以作为我一直在做的一些工作的一部分,我得到了一个包含在 Swift 应用程序中使用的 WebServices 的文件。我对 WebServices 的了解为零,只通过语法理解才知道 Java。我需要使用 swift 应用程序中的参数调用其中之一。我首先要弄清楚的是如何使用与其关联的 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 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;

}

【问题讨论】:

    标签: java web-services url get playframework-2.0


    【解决方案1】:

    找到我自己的答案。我最终从整数转换为字符串,这就是它在路线中的样子

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

    控制器

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

    值 123 的 URI 格式示例。

    http://localhost:9000/ListVehicleByPlateNumber/123
    

    【讨论】:

      猜你喜欢
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 2016-05-31
      • 2020-10-03
      • 2012-08-31
      • 2014-12-10
      • 1970-01-01
      相关资源
      最近更新 更多