天天看點

使用雙Form時,綁定的實體類出現錯誤

一:報錯資訊:neither bindingresult nor plain target object for bean name 'p'

  1.這是我在進行303我問了很多人,最終發現了一點小知識 , ' p ' 為我在後端綁定的實體類

   

  2.前端

   

  3.這是我的實體類

   

  4.注意,此時我綁定的實體類名稱和我前端綁定的實體類别名一緻的,且我在寫path=<實體類屬性名稱>時,是有提示的,但是就爆出了上面那個錯誤,接下來我将展示多種情況

    @notblank一般用來校驗string類型不能為空

    @notnull一般用來校驗integer類型不能為空

    @notempty一般用來校驗list類型不能為空

    ——+此時接收的實體類名稱改為跟前端的名稱一緻為《p》+—— 此時錯誤資訊不變

  

  5.再次修改接收實體類處,在@modelattribute 後添加實體類别名  此時驗證生效,仔細看兩處你會發現我修改了實體類的名稱,但是依舊可以正确驗證

使用雙Form時,綁定的實體類出現錯誤

  6.再次進行修改,這次讓綁定實體類處,以及前端綁定保證一緻

   7.其實我寫了好多,但是失手重新整理了一下qaq,都沒了,但我又不想寫了,是以以下簡單說明如何正确寫出form驗證的綁定。标記了三處,我将給我三種正确的情況,請仔細觀察他們的不同

  1.第一處不變

   第二處: public string loguser(@validated @modelattribute patient p, bindingresult result, model model) 

  第三處:

  2.第一處不變

  第二處:

  第三處不變

  3.第一處不變

  8.請注意,我的操作都是在我7的兩張效果圖那裡進行修改,最終發現這幾種方式都可以,最簡便的方式就是直接将綁定實體類時寫的名稱為實體類的名稱小寫,接收時也是,這樣能夠省去很多麻煩,且簡單明了

  9.如有錯誤,歡迎指正。

  10.星光不問趕路人,時光不負有心人。

我有一杯酒,足以慰風塵。