作者sthermit ( )
看板java
標題[問題] Struts2 接收 HTTP GET參數的問題
時間Tue Jan 22 23:47:24 2019
各位大大
小弟今天遇到一個問題,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 會使用上一次的值
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.223.249
※ 文章網址: https://www.ptt.cc/bbs/java/M.1548172048.A.AE3.html
推 kyleJ: 初學的話建議可以玩玩spring mvc,spring.io上有很多範例 01/23 00:17
→ kyleJ: ,但若是為了維護舊專案就沒辦法了XD 01/23 00:17
新的我都用Spring MVC建了。這是舊專案...現在就維護看看,不然只能重新做一個QQ
※ 編輯: sthermit (211.22.92.217), 01/23/2019 09:15:21
※ 編輯: sthermit (211.22.92.217), 01/23/2019 11:05:37
→ qrtt1: 你是用 spring 去生 struts 的 action 嗎?scope 填什麼? 01/23 19:17
推 GGing: 每個 request 都是獨立的,變數應該不會共用吧! 01/29 04:15
我本來也是這麼認為...
推 aa9250604: Spring默認的scope是singleton哦 改成prototype呢 02/02 00:03
推 gpctv: 樓上正解,之前Singleton的觀念我也查了好久才明白 02/16 13:25
感謝各位大大的回覆,我沒有特地去設scope的值,之後來研究看看怎麼設定
※ 編輯: sthermit (211.22.92.217), 02/21/2019 17:56:44