做了一个登录的LoginAction类,代码如下:
user=login(uf.userName,uf.password,);
request.getSession().setAttribute("user", user);
在页面中可以用${user.username}获取登录用户名。
如果要在后台InfoAction类中获取username数据怎么写代码?
或者还有其他传递方法也行。谢谢!
------解决思路----------------------
首先自定义一个User类,参数包括username,password,并生成getter,setter方法。
传递参数给Action一般有三种方法:
1、属性接收
LoginAction中定义一个User属性,并生成getter,setter方法
2、Domain Model,user.username
3、Model Driven
------解决思路----------------------
你好,
1,你可以把用户请求来的request传递给InfoAction类,infoAaction获取session。struts2可以在struts.xml中type类型来转向另一个action的某个方法。
2,还有一个方法就是你要维护一个静态的map。key——>用户名,value——>密码。遍历可得到所有登录的用户密码。
3,用拦截器获取用户名密码,传递给infoAction类。
希望对你有帮助。
------解决思路----------------------
request.getSession().setAttribute("user", user);
你已经存到session中了。
在InfoAction类 你只要
user = request.getSession().getAttribute("user", user);
要获取userName 就要看你user是什么对象。如果是map直接 user .get("userName ");
如果是类。看那个类中有没有 类似getUserName 的方法。
------解决思路----------------------
user = request.getSession().getAttribute("user", user); 我写错了 应改为user = request.getSession().getAttribute("user");
------解决思路----------------------
从楼主的问题看你暂时还没入门,
request就是请求对象,也是前后台交互用来封装数据的容器
session层也是容器,你学习J2EE的时候应该背过好多次概念了。
楼上基本差不多了,不过说的不仔细。
如果你用的是Struts1,那么Action的函数里直接就有request,你可以直接取,你既然没入门就记住一点就行了,放在哪就从哪去
比如你写的request.getSession().setAttribute("user", user);这就是放在session层里了放了一个Attribute取名字是"user"那么取的时候就是request.getSession().setAttribute("user");
这是strurs1是这样的,如果你用的struts2架构
ServletActionContext.getRequest().getSession().getAttribute("user");
红色部分就是取request对象的
------解决思路----------------------
楼上打错了是.getAttribute("user");
------解决思路----------------------
顶