struts2很老的东西了,最近遇到了这个问题查了很久,给出的解决办法都乱七八糟的
前端表单:
<form action="login.action">
用户名:<input type="text" name="name"><br>
口令:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
拦截器intercep函数:
public String intercept(ActionInvocation actionInvocation) throws Exception {
System.out.println("执行拦截器");
ActionContext ac = actionInvocation.getInvocationContext();
Map map = (Map) ac.get("request");
String name = (String) map.get("name");
String password = (String) map.get("password");
System.out.println(name);
System.out.println(password);
return actionInvocation.invoke();
}
说明:
ActionContext:内置对象,通过该对象可以获得之前Servlet中的对象,比如:requst对象,response对象等(更多关于ActionContext详情:https://blog.csdn.net/qishubiao/article/details/78479865)
Map:内置对象,更多用法详情参阅(https://www.cnblogs.com/xiaofeng-1/p/4763612.html)
我遇到的问题是从ActionContext获取Map对象的时候不清楚原来要获取到是内置对象request,以为直接可以用参数名字,然后一直报错,改过来之后就好了。