[問題] Struts2 接收 HTTP GET參數的問題

作者: sthermit ( )   2019-01-22 23:47:24
各位大大
小弟今天遇到一個問題,google很久沒發現可能的答案
或許是沒有打到關鍵字
我做了一個Struts2的網站
有個action負責接收用Get方法送過來的請求
預計接收三個變數
username、password、imsi
照教學跟過去一樣設定3個變數getter跟setter
Struts 就可以自動注入
今天出現問題,看Log發現是
Action 有時候不會對全部的變數進行Setter
第一個人送資料過來, ?username=A&password=A&imsi=aaaaaaaa
username = A
password = A
imsi = aaaaaaaa
之後第二個人或是第二次送資料 ?username=B&password=B&imsi=bbbbbbbb
會出現只有username被注入,其他變數維持上一次
username = B
password = A
imsi = aaaaaaaa
請問這種狀況是不是那邊緩存然後Struts判斷不用注入?
該如何修正?
有google到一個詞ValueStack,但是好像沒有清除值的方式
或是放棄自動注入,自己從Get的參數取得?
20190123回覆
後面加上QueryString的log,
才發現問題,是對方的參數沒給足,只有給username
然後沒有新值的 password跟imsi,struts 會使用上一次的值
作者: kyleJ (資工人)   2019-01-23 00:17:00
初學的話建議可以玩玩spring mvc,spring.io上有很多範例,但若是為了維護舊專案就沒辦法了XD
作者: qrtt1 (有些事,有時候。。。)   2019-01-23 19:17:00
你是用 spring 去生 struts 的 action 嗎?scope 填什麼?
作者: GGing (小軒軒)   2019-01-29 04:15:00
每個 request 都是獨立的,變數應該不會共用吧!
作者: aa9250604 (jim)   2019-02-02 00:03:00
Spring默認的scope是singleton哦 改成prototype呢
作者: gpctv (gpctv)   2019-02-16 13:25:00
樓上正解,之前Singleton的觀念我也查了好久才明白

Links booklink

Contact Us: admin [ a t ] ucptt.com