Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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
Java 调用静态方法并将模型传递给控制器_Java_Playframework_Playframework 2.5 - Fatal编程技术网

Java 调用静态方法并将模型传递给控制器

Java 调用静态方法并将模型传递给控制器,java,playframework,playframework-2.5,Java,Playframework,Playframework 2.5,我只是试图将我的表单传递给我的控制器,不管我怎么做,我都会遇到这个错误: render(play.api.data.Form<models.Service>) in 'null' cannot be applied to (play.data.Form<models.Service) Info.scale.html-查看 @(serviceForm : Form[Service]) @import helper._ @main("Service info") { <

我只是试图将我的表单传递给我的控制器,不管我怎么做,我都会遇到这个错误:

render(play.api.data.Form<models.Service>) in 'null' cannot be applied to (play.data.Form<models.Service)
Info.scale.html-查看

@(serviceForm : Form[Service])
@import helper._

@main("Service info") {
  <h1>Service Information</h1>
  @helper.form(action = routes.Services.save()) {
    <fieldset>
      <legend>Service</legend>
      @helper.inputText(serviceForm.field("code"), '_label -> "Code")
      @helper.inputText(serviceForm.field("description"), '_label -> "Description")
      @helper.inputText(serviceForm.field("description"), '_label -> "Description")
    </fieldset>
  <input type="submit" value="Save" />
  }
}
Services.java-控制器

package controllers;

import models.Service;
import play.mvc.Controller;
import play.mvc.Result;
import play.data.Form;
import views.html.services.info;

/**
 * Created by James on 3/4/2016.
 */
public class Services extends Controller {
    // Creating static class variable, calling static method and passing our model class.
    //private static final Form<Service> sServiceForm = Form.form(Service.class);
   private static final Form<Service> sServiceForm = play.data.Form.form(Service.class);
    public Result list() {
        return TODO;
    }

    public Result addService() {
        return ok(info.render(sServiceForm));
    }

    public Result save()
    {
        return TODO;
    }
}

以防您希望它使用FormFactory工作。 您可以按照此代码进行操作。 吉特的人帮了我。 所以,事实上,这是他的功劳

这是我的密码:

Services.java

package controllers;

import models.Service;
import play.data.Form;
import play.data.FormFactory;
import play.mvc.Controller;
import play.mvc.Result;
import views.html.services.info;

import javax.inject.Inject;

public class Services extends Controller {
    private final Form<Service> serviceForm;

    @Inject
    public Services(FormFactory formFactory) {
        this.serviceForm =  formFactory.form(Service.class);
    }

    public Result list() {
        return TODO;
    }

    public Result addService() {
        return ok(info.render(serviceForm));
    }

    public Result save() {
        return TODO;
    }
}
包控制器;
进口模型.服务;
导入play.data.Form;
导入play.data.FormFactory;
导入play.mvc.Controller;
导入play.mvc.Result;
导入views.html.services.info;
导入javax.inject.inject;
公共类服务扩展控制器{
私人最终形式服务形式;
@注入
公共服务(FormFactory FormFactory){
this.serviceForm=formFactory.form(Service.class);
}
公开成绩表(){
返回待办事项;
}
公共结果addService(){
返回ok(信息呈现(serviceForm));
}
公共结果保存(){
返回待办事项;
}
}
和info.scala.html

@(serviceForm : play.data.Form[Service])
@import helper._
@main("Service info"){

  <h1>Service Information</h1>

  @form(action = routes.Services.save()) {

    <fieldset>

      <legend>Service</legend>
      @inputText(serviceForm("code"), '_label -> "Code")
      @inputText(serviceForm("description"), '_label -> "Description")
      @inputText(serviceForm("description"), '_label -> "Description")

    </fieldset>

    <input type="submit" value="Save"/>

  }

}
@(serviceForm:play.data.Form[Service])
@导入助手_
@主(“服务信息”){
服务指南
@表单(action=routes.Services.save()){
服务
@inputText(服务表单(“代码”),“\u标签->代码”)
@inputText(服务表单(“说明”),“\u标签->说明”)
@inputText(服务表单(“说明”),“\u标签->说明”)
}
}

您在哪里看到此错误?在你的想法还是在你的控制台?我想这只是一个想法上的“问题”,因为没有认识到
play.data.Form
(Java表单版本,在您的控制器上)和
play.api.data.Form
(Scala,在您的视图中)之间的隐式转换。让IDEA满意的一种可能方法是像
@(serviceForm:play.data.Form[Service])
那样声明您的视图。另外,如果您已经在使用Play 2.5.0,请插入一个
FormFactory
,而不是使用不推荐使用的
Form.Form
。这并不能真正回答问题。如果您有不同的问题,可以单击以提问。一旦你有足够的时间,你也可以吸引更多的注意力我已经编辑过了。这次,回答我遇到的问题
private static final Form<Service> sServiceForm = Form.form(Service.class);
private static final Form<Service> sServiceForm = Form.form(Service.class);
package controllers;

import models.Service;
import play.data.Form;
import play.data.FormFactory;
import play.mvc.Controller;
import play.mvc.Result;
import views.html.services.info;

import javax.inject.Inject;

public class Services extends Controller {
    private final Form<Service> serviceForm;

    @Inject
    public Services(FormFactory formFactory) {
        this.serviceForm =  formFactory.form(Service.class);
    }

    public Result list() {
        return TODO;
    }

    public Result addService() {
        return ok(info.render(serviceForm));
    }

    public Result save() {
        return TODO;
    }
}
@(serviceForm : play.data.Form[Service])
@import helper._
@main("Service info"){

  <h1>Service Information</h1>

  @form(action = routes.Services.save()) {

    <fieldset>

      <legend>Service</legend>
      @inputText(serviceForm("code"), '_label -> "Code")
      @inputText(serviceForm("description"), '_label -> "Description")
      @inputText(serviceForm("description"), '_label -> "Description")

    </fieldset>

    <input type="submit" value="Save"/>

  }

}