Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
隐式QueryStringBindable java.util.List[models.InputTimeSheetDataStore]_Java_Scala_Playframework - Fatal编程技术网

隐式QueryStringBindable java.util.List[models.InputTimeSheetDataStore]

隐式QueryStringBindable java.util.List[models.InputTimeSheetDataStore],java,scala,playframework,Java,Scala,Playframework,您好,我正在尝试将类型为models.InputTimeSheetDataStore的对象列表从view传递到application.java,并且我没有找到类型为java.util.list[models.InputTimeSheetDataStore]的查询字符串绑定器。尝试为此类型实现隐式QueryStringBindable错误 在application.java中,我正在传递要查看的对象列表 InputTimeSheetDataStore ITSDS= new InputTimeShe

您好,我正在尝试将类型为
models.InputTimeSheetDataStore
的对象列表从view传递到application.java,并且我没有找到类型为java.util.list[models.InputTimeSheetDataStore]的
查询字符串绑定器。尝试为此类型实现隐式QueryStringBindable
错误

在application.java中,我正在传递要查看的对象列表

InputTimeSheetDataStore ITSDS= new InputTimeSheetDataStore();
            ITSDS.ConsultantName=EmployeeFilter;
            ITSDS.Client=ClientFilter;
            ITSDS.Project=ProjectFilter;
            ITSDS.Role=EmployeeRoleFilter;
            ITSDS.Task=Task;
            ITSDS.TimeSheetDate=TimeSheetDate;
            ITSDS.Hours=TaskHours;
            ITSDS.IsBilled=IsBilled;
            ITSDS.Workplace=WorkPlace;
            InputTimeSheetList.add(ITSDS);
            return ok(TimeSheetInput.render(Consultant.PopulateConsultant(),Client.PopulateClient(),Project.PopulateProject(ClientFilter),
                    Consultant.PopulateConsultantRole(),Consultant.ConsultantRoleRate(EmployeeRoleFilter),InputTimeSheetList));
在视图中,我将该对象传递回application.java

@(EmployeeList:java.util.List[String],ClientList:java.util.List[String],
  ProjectList:java.util.List[String],EmployeeRoleList: java.util.List[String],Rate:String,
  CurrentPage:List[InputTimeSheetDataStore])

  <form id="TimeSheetEntryForm" name="TimeSheetEntryForm" action="@{routes.Application.save("name","name","name","name","name","name","name","name","name",CurrentPage)}" method="GET">
<code.....>
我的路线是

GET     /Application/save            controllers.Application.save(EmployeeFilter:String,ClientFilter:String,ProjectFilter:String, EmployeeRoleFilter:String,Task:String,TaskHours:String,TimeSheetDate:String,IsBilled:String,WorkPlace:String,CurrentPage:java.util.List[models.InputTimeSheetDataStore])
有人能帮我处理InputTimeSheetDataStore类型的隐式querybinder吗


这是QueryStringbindable的示例实现:

    public class InputTimeSheetDataStore implements QueryStringBindable<InputTimeSheetDataStore> {

      public String consultantName, client, project;

      @Override
      public Optional bind(String key, Map data) {
        if (data.containsKey("consultantName")) {
            this. consultantName = data.get("consultantName").toString();
        }

        if (data.containsKey("client")) {
            this.client = data.get("client").toString();
        }

        if (data.containsKey("project")) {
            this.project = data.get("project").toString();
        }

        return Optional.of(this);
      }

      @Override
      public String unbind(String key) {
        return null;
      }

      @Override
      public String javascriptUnbind() {
        return null;
      }
   }

希望有帮助。

为什么不在您的模型中实现
QueryStringBindable
?@Adam我不知道如何实现它并寻求sameok的帮助,您能否提供示例URL以显示currentPage参数应该代表什么?@Adam已编辑了问题,请参阅相关文档页面:
    public class InputTimeSheetDataStore implements QueryStringBindable<InputTimeSheetDataStore> {

      public String consultantName, client, project;

      @Override
      public Optional bind(String key, Map data) {
        if (data.containsKey("consultantName")) {
            this. consultantName = data.get("consultantName").toString();
        }

        if (data.containsKey("client")) {
            this.client = data.get("client").toString();
        }

        if (data.containsKey("project")) {
            this.project = data.get("project").toString();
        }

        return Optional.of(this);
      }

      @Override
      public String unbind(String key) {
        return null;
      }

      @Override
      public String javascriptUnbind() {
        return null;
      }
   }
public String ConsultantName; // this is wrong
public String consultantName; //this is right