[color=indigo]
[size=medium]
购买操作需要验证用户是否登录
ShopAction里面都是添加条目,修改条目之类的方法
我在struts.xml里给ShopAction配置了ShopInterceptor拦截器
[code="xml"]
[color=indigo][/color]
class="com.SandStorm.dang.interceptor.ShopInterceptor" />
method="{1}">
/WEB-INF/jsp/shopping/{1}.jsp
logForm
method="{1}">
shop_cartShow
logForm
[/code]
其中cart_*是添加,删除的操作,shop_*是用来显示购物车页面的
页面发送的请求是比如 cart_addItem.action?productId=1 这样的
请求经过了拦截器,那ShopAction是肯定拿不到 productId 这个参数了。
但是好像拦截器也拿不到,不仅如此,用拦截器做验证的时候,
我是先从session里面取userId,如果为空,那么再从cookie里面取
可是拦截器里好像取不到cookie
我的拦截器代码:
[code="java"]
public class ShopInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
private ActionContext ctx;
private Map<String, Object> session;
public String intercept(ActionInvocation invocation) throws Exception {
String result = null;
Boolean isLogin = null;
ctx = invocation.getInvocationContext();
session = ctx.getSession();
ShopAction action = (ShopAction) invocation.getAction();
int id = action.getProductId();
action.setProductId(1);
System.out.println("productId:" + id);
if (session.containsKey(Constants.SESSION_ISLOGIN)) {
isLogin = (Boolean) session.get(Constants.SESSION_ISLOGIN);
}
if (isLogin != null && isLogin) {
result = invocation.invoke();
} else {
result = Constants.FAIL;
}
return result;
}
}
[/code]
请问类似这种问题该怎么解决?
[/size][/color]