LoginSignup
1
0

More than 3 years have passed since last update.

【Spring】@SessionAttributesでセッションオブジェクトでオブジェクトを持ち回りたいのに・・・

Posted at

No primary or single public constructor found for interface java.util.List

このエラーに5時間位かかりましたね。意味わからんかったー
結局セッションオブジェクトの扱い方がわかっていなくて、コントローラーのメソッドの引数に@ModelAttributeなしでList<Integer> ListInt,みたいに渡してて、これがアカン買ったようです。

大まかなイメージ

  1. セッションに置きたい名前を準備
  2. その名前にオブジェクトを結びつける
  3. model.addAttributeでセッションに保存する
  4. メソッドの引数に@ModelAttributeをつけてセッションから取得

実装する場所

コントローラーの上に

@SessionAttributes( value="〇〇")

〇〇にはオブジェクトの名前(属性名)

コントローラーの中の一番上に@ModelAttributeでオブジェクトを準備


@ModelAttribute( value = "〇〇" )
public △△ setUp〇〇(){
 return new △△();
}

セッションのコンストラクタ?
これで、〇〇という名前の△△型のオブジェクトが準備される

メソッドの引数に@ModelAttributeでセッションから取得

public method(
 @ModelAttribute("〇〇") △△ 〇〇,
 Model model
){

modelも必要でした

メソッド内で

model.addAttribute("〇〇", 〇〇)

ここでセッションの中の"〇〇"という名前でオブジェクトを保存することができます

別のコントローラーでは@ModelAttribute無しでも持ち回れたんだけど・・・

基本がわかっていないからこういうことになるんですけど、まだまだ駆け出しなのでうまく行ったものを正解だと思って同じようにやってるんだけど、ちょっと変わってくるとエラーが出て「さっきはできてたやん!!」って叫びたくなりませんか??!!

まあ勉強にはなるんですけど、、、、

1
0
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
1
0