5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Springよくあるエラー 「Error during execution of processor... SpringInputFileFieldTagProcessor」

Last updated at Posted at 2021-03-27

##環境
macOS
STS
spring-boot 2.4.3
Thymeleaf

##Error during exception of processor...とは?

エラーコード

Caused by: org.attoparser.ParseException: Error during execution of processor 'org.thymeleaf.spring5.processor.SpringInputFileFieldTagProcessor'

##よくある原因

よくある原因としては

・Thymeleafオブジェクトの値を正しく参照できていない
・Thymeleafオブジェクトがそもそも存在しない

が挙げられる。

例えばth:objectで参照したオブジェクトがControllerから引き渡せていなかったり、参照したクラスフィールドが存在しない場合である。

${} と *{} の違い

このSpringInputFileFieldTagProcessorのエラーを引き起こす際に良くある原因として、オブジェクトの表記方法に原因がある。

thymeleafのオブジェクトの値を参照する時

th:value="${test.hoge}"

ダラー($)で表記することが良くある。
ただ、値を参照する際もう1つの表記方法がある。
それが

th:value="*{hoge}"

という表記である。

このアスタリスク(*)は、オブジェクトのフィールド名を指定する際に用いられる記号である。

つまり

<form th:object="${test}">
  <input th:value="${test.hoge}">
</form>

<form th:object="${test}">
  <input th:value="*{hoge}">
</form>

は同じ結果になる。

よくある間違いで、このように記述してしまうと今回のエラーになる。

<form th:object="${test}">
  <input th:value="${hoge}">
</form>
5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?