整合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 ...
随机推荐
- redis存储数据
redis存储结构--5种 RedisTemplate访问Redis数据结构(一)--String https://blog.csdn.net/qq_25135655/article/details/ ...
- 屏幕的遮挡层,js得到屏幕宽高、页面宽高 (window.screen.availHeight)等--
window.screen.availWidth 返回当前屏幕宽度(空白空间) ------当手机有输入法的时候,要注意................window.screen.availHeigh ...
- JavaSE--异常机制
异常就是程序在运行时出现的不正常情况.发生在运行时期,java程序在运行时期发生的不正常情况,此时java就按照面向对象的思想对不正常现象进行描述和对象的封装.异常的由来:问题也是现实生活中一个具体的 ...
- SQL学习(二)之四大查询语句以及标准写法
SQL四大查询语句——增删改查 增-INSERT INSERT INTO 表 (字段列表) VALUES(值列表) INSERT INTO `user_table` (`ID`, `username` ...
- Dubbo从入门到实战视频教程
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成.这里整理了一套关于dubbo的视频教程分享给大家,包 ...
- 02 前端之css
---恢复内容开始--- 1.css的几种引入方式: 1.行内样式 (行内式是在标记的style属性中设定的css样式.不推荐大规模使用) <p style="color: red&q ...
- springboot启动出错,
ssm框架 启动后报错 内容如下 [RMI TCP Connection(2)-127.0.0.1] WARN org.springframework.boot.context.embedded.An ...
- 26、Nginx Uwsgi代理
1.Uwsgi代理基本概述 cgi.fastcgi.wsgi.uwsgi python框架 Django是一个开放源代码的web的框架 Flask是一个使用python编写的轻量级web应用框架 2 ...
- Tensorflow源码编译常见问题点总结
Tensorflow源码编译分两种:一种是本地源码编译,另一种是针对ARM平台的源码编译. 接下来分别介绍: 一.本地编译 本地编译时,使用的编译工具是本地GCC. 一般会碰到以下问题: 第1个:ex ...
- 14Filter&Listener
1.Filter:过滤器 1.1 概念 生活中的过滤器:净水器,空气净化器,土匪. web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能. 过滤器的作用: 一般用于完成 ...