整合spring之后,struts2里面的自定义拦截器的invocation.invoke()总是返回input
这个真的是整死我了,还好看见了一篇博客提示了我,
解决方法:
在spring的bean配置中我没有设置action的作用域为prototype,也就是多例的,如果不设置则就会是默认的singleton。
也就是我们每次去调用action的时候都应该是一个新的action,而不是之前的action,所以就应该是多例模式的,而不是单例模式
哎!整死我了!
我把原文博客分享在这里:
https://blog.csdn.net/zml_2015/article/details/50266783
后来我竟然又遇到了这个问题,是在文件上传的时候遇到的,找了许久许久啊!这篇博客写的很好,我应该要自己根据他说的排查的
https://blog.csdn.net/zc_ad/article/details/70146053
如果登陆页面找到对应的action后,struts2默认在execute方法执行之前,会先执行validate验证方法,如果发现有errors,直接就中转到input所指向的页面.跳转到input之前就根本没有执行action的方法.
画面事件响应,提交表单后,通过struts2的配置文件找到action,执行了其中的get,set方法,然后直接返回input,不走对应的方法。
1.可能是由于某个参数传递失败导致的。struts2有自动验证的一些机制,例如:你用int age 提供了get,set方法但是你页面出入的是字符串,那struts2的拦截器会直接return input的,检查一下 你定义的变量和传进的参数类型是否匹配。
2.你可能用了spring,在spring的配置文件中的bean没有设置singleton或者scope属性,singleton默认是"true",scope默认是"singleton"。如果你没有设置这个属性,相当于是单例模式,每次都用的是第一次产生的action对象,每次访问都会把信息存储在这个对象中。当你有一次访问出错,进入异常时,这个action对象的ActionErrors属性就可能有值。这时你再通过画面访问这个action时,就会直接返回input。在有必要的情况下,必须把action对应的bean的singleton设为"false",scope设为"prototype"。
还有就是我上传的是图片,然后我没有在form表单上面设置enctype="multipart/form-data",这会导致什么呢?
其实如果不设置这个也是可以上传文件的,但是只能够上传文本文件,这个参数的作用就是将上传的东西弄成二进制进行上传,这样上传的类型就不会只有文本了
好比说我上传的图片,为什么会出现input呢?可能就是因为我上传的图片跟我后面action定义的file参数类型不匹配所导致的了,也就是上面所说的第一种情况
呜呜呜呜呜,,
整死我了,下次再也不会犯这样的错了,还好我遇到了这种情况,不然下次那不哭死
整合spring之后,struts2里面的自定义拦截器的invocation.invoke()总是返回input的更多相关文章
- 在struts2中配置自定义拦截器放行多个方法
源码: 自定义的拦截器类: //自定义拦截器类:LoginInterceptor ; package com.java.action.interceptor; import javax.servlet ...
- struts2框架之自定义拦截器和配置
struts框架中也存在拦截器,只不过系统自动调用.框架自带的拦截器的配置文件所在的位置为: java Resources--->Libraries--->struts2-core-2.3 ...
- Struts2中一个自定义拦截器的使用
1.自定义的拦截器的类: package it.web.interceptor; import com.opensymphony.xwork2.ActionContext; import com.op ...
- struts2学习(6)自定义拦截器-登录验证拦截器
需求:对登录进行验证,用户名cy 密码123456才能登录进去: 登录进去后,将用户存在session中: 其他链接要来访问(除了登录链接),首先验证是否登录,对这个进行拦截: com.cy.mod ...
- Struts2第七篇【介绍拦截器、自定义拦截器、执行流程、应用】
什么是拦截器 拦截器Interceptor-..拦截器是Struts的概念,它与过滤器是类似的-可以近似于看作是过滤器 为什么我们要使用拦截器 前面在介绍Struts的时候已经讲解过了,Struts为 ...
- JavaEE开发之SpringMVC中的自定义拦截器及异常处理
上篇博客我们聊了<JavaEE开发之SpringMVC中的路由配置及参数传递详解>,本篇博客我们就聊一下自定义拦截器的实现.以及使用ModelAndView对象将Controller的值加 ...
- JavaWeb -- Struts 自定义拦截器, 登录权限拦截
1. 自定义拦截器, 登录权限拦截 login.jsp 登录JSP <%@ page language="java" contentType="text/html; ...
- struts2自定义拦截器与cookie整合实现用户免重复登入
目的:测试开发时,为了减少用户登入这个繁琐的登入验证,就用struts2做了个简单的struts2拦截器,涉及到了与cookie整合,具体的看代码 结构(两部份)=struts2.xml+自定义拦截器 ...
- Struts2自定义拦截器处理全局异常
今天在整理之前的项目的时候想着有的action层没有做异常处理,于是想着自定义拦截器处理一下未拦截的异常. 代码: package cn.xm.exam.action.safeHat; import ...
随机推荐
- [转载]HTTP和HTTPS
来源:https://blog.csdn.net/xiaoming100001/article/details/81109617 大纲 一.前言: 先来观察这两张图,第一张访问域名http://www ...
- pytorch中torch.narrow()函数
torch.narrow(input, dim, start, length) → Tensor Returns a new tensor that is a narrowed version of ...
- hive各种报错
搭建了 CDH6.1.0环境 新加入一台机器都hive但是报错 javax.jdo.JDODataStoreException: Required table missing : "`VER ...
- 微信小程序获得高度
wx.getSystemInfo({ success: (res) => { wx.createSelectorQuery().select('#scrollbox').boundingClie ...
- (转)Linux传输大文件(分割传输)
1.分拆为多个文件的命令: cat workspace_2018.tar.gz | split -b 1G - workspace_2018.tar.gz. 命令解释: workspace_2018. ...
- 【bzoj 4025 改编版】graph
题意 给定一张 \(n\) 个点 \(m\) 条边的无向图,问删去每个点后,原图是不是二分图.输出一个长度为 \(n\) 的 \(\text{01}\) 串表示答案. 多组数据. \(T\le 5,\ ...
- k8spod探测
一.pod存活性探测 pod spec为容器列表中的相应容器定义其专用的探针即可启用存活性探测,目前,k8s的容器支持存活性探测的方法包含:ExecAction.TCPSocketActon和HTTP ...
- alembic在tornado项目中的应用
在项目中引用alembic 协助tornado项目生成数据表结构 alembic revision --autogenerate -m "create tables" 第二步执行 ...
- 测试网站接口,nginx篇
nginx是反向代理,怎么通过nginx反向代理要测试接口的线上网站呢. 这里自我提供了一个方法,仅供参考!建议不要用于刷接口等非常规的用途,后果会很严重. 首先 用node express创建一个项 ...
- css设置元素垂直居中的几个方法
最近有人问我怎么设置元素垂直居中?我....(这么基础的东西都不会?我有点说不出话来), 不过还是耐心的教了他几个方法,好吧教完他们,顺便把这些方法整理一下 第一种:通过设置成为表格元素的方式来实现 ...