Java Play Framework 2.5使用POST方法提交表单错误
我有新的游戏框架2.5。我正在使用Java中的Play。创建了一个普通的HTML表单,并希望使用POST方法提交表单,但它抛出了错误。我用谷歌搜索了很多次,但没有成功 路线:Java Play Framework 2.5使用POST方法提交表单错误,java,forms,post,playframework-2.5,Java,Forms,Post,Playframework 2.5,我有新的游戏框架2.5。我正在使用Java中的Play。创建了一个普通的HTML表单,并希望使用POST方法提交表单,但它抛出了错误。我用谷歌搜索了很多次,但没有成功 路线: POST /output controllers.HomeController.result HTML代码: <form name="form1" action="/output" method="post"> <div id="content">
POST /output controllers.HomeController.result
HTML代码:
<form name="form1" action="/output" method="post">
<div id="content">
<label>Enter Sentence/Paragraph.</label></br>
<textarea id="para" name="para" rows="15" cols="100"></textarea></br>
<input id="submit_btn" name="submit_btn" type="submit" value="Submit" />
</div>
</form>
package controllers;
import com.google.inject.Inject;
import play.data.DynamicForm;
import play.data.FormFactory;
import play.mvc.Controller;
import play.mvc.Result;
import views.html.index;
import views.html.output;.
public class HomeController extends Controller {
@Inject
FormFactory formFactory;
public Result index() {
return ok(index.render("NLP Pipeline."));
}
public Result result() {
DynamicForm requestData = formFactory.form().bindFromRequest();
System.out.println("form: " + requestData.get("para"));
return ok();
}
}
Unexpected exception
ProvisionException: Unable to provision, see the following errors:
1) Error injecting constructor, java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
at play.data.format.Formatters.<init>(Formatters.java:31)
at play.data.format.FormattersModule.bindings(FormattersModule.java:18):
Binding(class play.data.format.Formatters to self) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
while locating play.data.format.Formatters
for parameter 1 at play.data.FormFactory.<init>(FormFactory.java:25)
at play.data.FormFactoryModule.bindings(FormFactoryModule.java:17):
Binding(class play.data.FormFactory to self) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
while locating play.data.FormFactory
for field at controllers.HomeController.formFactory(HomeController.java:16)
while locating controllers.HomeController
for parameter 1 at router.Routes.<init>(Routes.scala:32)
while locating router.Routes
while locating play.api.inject.RoutesProvider
while locating play.api.routing.Router
for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.<init>(HttpRequestHandler.scala:200)
while locating play.api.http.JavaCompatibleHttpRequestHandler
while locating play.api.http.HttpRequestHandler
for parameter 4 at play.api.DefaultApplication.<init>(Application.scala:221)
at play.api.DefaultApplication.class(Application.scala:221)
while locating play.api.DefaultApplication
while locating play.api.Application
1 error
错误:
<form name="form1" action="/output" method="post">
<div id="content">
<label>Enter Sentence/Paragraph.</label></br>
<textarea id="para" name="para" rows="15" cols="100"></textarea></br>
<input id="submit_btn" name="submit_btn" type="submit" value="Submit" />
</div>
</form>
package controllers;
import com.google.inject.Inject;
import play.data.DynamicForm;
import play.data.FormFactory;
import play.mvc.Controller;
import play.mvc.Result;
import views.html.index;
import views.html.output;.
public class HomeController extends Controller {
@Inject
FormFactory formFactory;
public Result index() {
return ok(index.render("NLP Pipeline."));
}
public Result result() {
DynamicForm requestData = formFactory.form().bindFromRequest();
System.out.println("form: " + requestData.get("para"));
return ok();
}
}
Unexpected exception
ProvisionException: Unable to provision, see the following errors:
1) Error injecting constructor, java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
at play.data.format.Formatters.<init>(Formatters.java:31)
at play.data.format.FormattersModule.bindings(FormattersModule.java:18):
Binding(class play.data.format.Formatters to self) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
while locating play.data.format.Formatters
for parameter 1 at play.data.FormFactory.<init>(FormFactory.java:25)
at play.data.FormFactoryModule.bindings(FormFactoryModule.java:17):
Binding(class play.data.FormFactory to self) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
while locating play.data.FormFactory
for field at controllers.HomeController.formFactory(HomeController.java:16)
while locating controllers.HomeController
for parameter 1 at router.Routes.<init>(Routes.scala:32)
while locating router.Routes
while locating play.api.inject.RoutesProvider
while locating play.api.routing.Router
for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.<init>(HttpRequestHandler.scala:200)
while locating play.api.http.JavaCompatibleHttpRequestHandler
while locating play.api.http.HttpRequestHandler
for parameter 4 at play.api.DefaultApplication.<init>(Application.scala:221)
at play.api.DefaultApplication.class(Application.scala:221)
while locating play.api.DefaultApplication
while locating play.api.Application
1 error
意外异常
ProvisionException:无法设置,请查看以下错误:
1) 注入构造函数java.lang.NoSuchMethodError时出错:org.springframework.util.ClassUtils.getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
play.data.format.Formatters.(Formatters.java:31)
play.data.format.FormattersModule.bindings(FormattersModule.java:18):
绑定(类play.data.format.Formatters到self)(通过模块:com.google.inject.util.modules$OverrideModule->play.api.inject.guice.GuiceableModuleConversions$$anon$1)
查找play.data.format.Formatters时
用于play.data.FormFactory中的参数1。(FormFactory.java:25)
play.data.FormFactoryModule.bindings(FormFactoryModule.java:17):
绑定(类play.data.FormFactory到self)(通过模块:com.google.inject.util.modules$OverrideModule->play.api.inject.guice.GuiceableModuleConversions$$anon$1)
查找play.data.FormFactory时
用于controllers.HomeController.formFactory(HomeController.java:16)中的字段
查找控制器时。HomeController
用于router.Routes处的参数1。(Routes.scala:32)
定位路由器时。路由
查找play.api.inject.routeProvider时
查找play.api.routing.Router时
用于play.api.http.JavaCompatibleHttpRequestHandler处的参数0。(HttpRequestHandler.scala:200)
查找play.api.http.JavaCompatibleHttpRequestHandler时
查找play.api.http.HttpRequestHandler时
用于play.api.DefaultApplication中的参数4。(Application.scala:221)
at play.api.DefaultApplication.class(Application.scala:221)
查找play.api.DefaultApplication时
查找play.api.Application时
1错误
我想使用普通的HTML表单使用POST方法提交请求。有什么帮助吗?我有答案的解决方案 我们可以通过
final Map<String, String[]> form_values = request().body().asFormUrlEncoded();
final Map form_values=request().body().asFormUrlEncoded();
然后通过以下方式获取表单名称参数值:
form_values.get("<key_name>")[0];
form_values.get(“”[0];
我有答案的解决方案
我们可以通过
final Map<String, String[]> form_values = request().body().asFormUrlEncoded();
final Map form_values=request().body().asFormUrlEncoded();
然后通过以下方式获取表单名称参数值:
form_values.get("<key_name>")[0];
form_values.get(“”[0];
为什么不在html代码中使用帮助程序呢
@import helper._
@form(my.controller.method.handling.post(param)) {
<div id="content">
<label>Enter Sentence/Paragraph.</label></br>
<textarea id="para" name="para" rows="15" cols="100"></textarea></br>
<input id="submit_btn" name="submit_btn" type="submit" value="Submit" />
</div>
}
更容易处理表单对象,而无需处理类型转换等(请参阅上的播放文档)为什么不在html代码中使用帮助程序?使用
@import helper._
@form(my.controller.method.handling.post(param)) {
<div id="content">
<label>Enter Sentence/Paragraph.</label></br>
<textarea id="para" name="para" rows="15" cols="100"></textarea></br>
<input id="submit_btn" name="submit_btn" type="submit" value="Submit" />
</div>
}
更容易处理表单对象,而无需处理类型转换等(请参阅上的播放文档)这对我来说也很有效。谢谢iNikkz。这是一场噩梦。这对我也很有效。谢谢iNikkz。这是一场噩梦。