@ModelAttributeエラー「No primary or single unique constructor found for xxx」の対処法

# 結論
確認するべき場所は二つ。本記事では、後者について詳細を書き留める。
- 引数なしコンストラクタを定義する
- `@Modelattribute`に名前を定義する

# 詳細
コントローラメゾッドで`No primary or single unique constructor found for xxx`というエラーが発生する。<br>
原因を探ると、コントローラの引数`@ModelAttribute`している処理がうまくいっていないようである。<br>

コントローラの実装
```java:Controller.java
  @GetMapping("/page")
  public String doProcess(@ModelAttribute boolean blFlg, Model model) {
```

スタックトレース
```java
java.lang.IllegalStateException: No primary or single unique constructor found for boolean
	at org.springframework.beans.BeanUtils.getResolvableConstructor(BeanUtils.java:265)
	at org.springframework.validation.DataBinder.createObject(DataBinder.java:926)
	at org.springframework.validation.DataBinder.construct(DataBinder.java:905)
	at org.springframework.web.bind.ServletRequestDataBinder.construct(ServletRequestDataBinder.java:116)
	at org.springframework.web.servlet.mvc.method.annotation.ServletModelAttributeMethodProcessor.constructAttribute(ServletModelAttributeMethodProcessor.java:157)
	at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument(ModelAttributeMethodProcessor.java:148)
	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)
	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:224)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:178)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
```

このエラーが発生した場合、該当クラスの引数なしコンストラクタを定義してあるか確認するのが自分の中での定石だったが、`boolean`という自作クラスではない、ましてはプリミティブ型でのエラーということで、自作でコンストラクタを用意する必要があるはずもないため、対処法に悩んだ。<br>

# 解決方法
最終的に、`@ModelAttribute`に名前を明示することで解決した。
具体的には`@ModelAttribute`を`@ModelAttribute("blFlg")`とした。
原理は調べてないため不明だが動くようになったので解決。

```java:Controller.java
  @GetMapping("/page")
  public String doProcess(@ModelAttribute("blFlg") boolean blFlg, Model model) {
```