[问题] 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