SpringMVCフォームの提出パラメータが不整合でエラーが発生しました.
SpringMVCの下で、フォームを提出すると400のエラーが発生します.
ネット上のまとめによると、次のような問題が原因かもしれません.
1.パラメータ指定問題Controllerにパラメータが定義されていますが、フォーム内にはこのフィールドが定義されていません.
ここでは、フォーム内でuserNameの属性を提供しなければなりません.指定したくないなら、この属性のデフォルト値defaultValue=":
このパラメータは不必要なrequired=falseであることも指定できます.
2.アップロード問題
アップロードファイルのサイズがSpringアップロードの制限を超えています.
私達の工程ではこの問題が起きましたが、実際の例では大きさを超えると直接エラーが発生します.
3.時間変換問題
時間の切り替えが原因だというネットユーザーの話もありますが、実際に操作してみたら、エラーを発見しました.
ここでもついでに言いますが、もしあなたのControllerに時間の対象が必要なら、コードは以下の通りです.
ホームページで実際にくれたのは
ここではControllerにコンバータを追加する必要があります.
ITEYEサイトでjava小強のオリジナルを見てください.ありがとうございます.http://cuisuqiang.iteye.com/ !
自己ブログアドレス:http://www.javacui.com/、内容はITEYEと同期します.
description The request sent by the client was syntactically incorrect.
ネット上のまとめによると、次のような問題が原因かもしれません.
1.パラメータ指定問題Controllerにパラメータが定義されていますが、フォーム内にはこのフィールドが定義されていません.
@SuppressWarnings("deprecation")
@RequestMapping("/hello.do")
public String hello(HttpServletRequest request,HttpServletResponse response,
@RequestParam(value="userName") String user
){
request.setAttribute("user", user);
return "hello";
}
ここでは、フォーム内でuserNameの属性を提供しなければなりません.指定したくないなら、この属性のデフォルト値defaultValue=":
@SuppressWarnings("deprecation")
@RequestMapping("/hello.do")
public String hello(HttpServletRequest request,HttpServletResponse response,
@RequestParam(value="userName",defaultValue=" ") String user
){
request.setAttribute("user", user);
return "hello";
}
このパラメータは不必要なrequired=falseであることも指定できます.
@SuppressWarnings("deprecation")
@RequestMapping("/hello.do")
public String hello(HttpServletRequest request,HttpServletResponse response,
@RequestParam(value="userName",required=false) String user
){
request.setAttribute("user", user);
return "hello";
}
2.アップロード問題
アップロードファイルのサイズがSpringアップロードの制限を超えています.
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 1024 =1K, 10K -->
<property name="maxUploadSize">
<value>10240</value>
</property>
<property name="defaultEncoding">
<value>UTF-8</value>
</property>
</bean>
私達の工程ではこの問題が起きましたが、実際の例では大きさを超えると直接エラーが発生します.
3.時間変換問題
時間の切り替えが原因だというネットユーザーの話もありますが、実際に操作してみたら、エラーを発見しました.
The server encountered an internal error that prevented it from fulfilling this request
ここでもついでに言いますが、もしあなたのControllerに時間の対象が必要なら、コードは以下の通りです.
@SuppressWarnings("deprecation")
@RequestMapping("/hello.do")
public String hello(HttpServletRequest request,HttpServletResponse response,
@RequestParam(value="userName",defaultValue=" ") String user,
Date dateTest
){
request.setAttribute("user", user);
System.out.println(dateTest.toLocaleString());
return "hello";
}
ホームページで実際にくれたのは
<input type="text" name="dateTest" value="2015-06-07">
ここではControllerにコンバータを追加する必要があります.
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}
ITEYEサイトでjava小強のオリジナルを見てください.ありがとうございます.http://cuisuqiang.iteye.com/ !
自己ブログアドレス:http://www.javacui.com/、内容はITEYEと同期します.