struts2自定义拦截器继承AbstractInterceptor,怎么在拦截器中通过解耦合方式在接收form表单中提交数据
就是在拦截器中通过添加Map属性:privateMap<String,Object>request;publicStringintercept(ActionInvocat...
就是在拦截器中通过添加Map属性:private Map<String, Object> request;
public String intercept(ActionInvocation invo) throws Exception {
System.out.println("进入黑名单拦截器");
// 解耦合方式
ActionContext ac = ActionContext.getContext();
request = (Map<String, Object>) ac.get("request");
String userName = (String) request.get("userName");
System.out.println("用户名:" + userName);
String result = invo.invoke();
}
jap中form表单代码如下:
<form action="LoginAction" method="post">
用户名:<input type="text" name="userName" id="userName" /><br />
密码:<input type="password" name="userPwd" />
<br /><input type="submit" value="提交" /><input value="重置" type="reset" />
</form>
struts.xml配置如下:
<action name="LoginAction" class="com.sd.web.action2.LoginAction">
<interceptor-ref name="badName"></interceptor-ref>
<result type="dispatcher">
/WEB-INF/client/success.jsp
</result>
</action>
通过耦合的方式可以获得表单中的数据,即通过声明httpServletRequest request;可以获得form表单中的数据,但是通过map的方式获得不了,这是为什么呢?恳请高手解答解答。 展开
public String intercept(ActionInvocation invo) throws Exception {
System.out.println("进入黑名单拦截器");
// 解耦合方式
ActionContext ac = ActionContext.getContext();
request = (Map<String, Object>) ac.get("request");
String userName = (String) request.get("userName");
System.out.println("用户名:" + userName);
String result = invo.invoke();
}
jap中form表单代码如下:
<form action="LoginAction" method="post">
用户名:<input type="text" name="userName" id="userName" /><br />
密码:<input type="password" name="userPwd" />
<br /><input type="submit" value="提交" /><input value="重置" type="reset" />
</form>
struts.xml配置如下:
<action name="LoginAction" class="com.sd.web.action2.LoginAction">
<interceptor-ref name="badName"></interceptor-ref>
<result type="dispatcher">
/WEB-INF/client/success.jsp
</result>
</action>
通过耦合的方式可以获得表单中的数据,即通过声明httpServletRequest request;可以获得form表单中的数据,但是通过map的方式获得不了,这是为什么呢?恳请高手解答解答。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询