如何使用servlet与springmvcc框架在普通的servlet注入service

SpringMVC项目中偶尔用到servlet,如何在servlet中注入service笔记 - Smile_Miracle的博客 - CSDN博客
SpringMVC项目中偶尔用到servlet,如何在servlet中注入service笔记
仅此做个笔记,防止注入时而成功时而失败的问题。
package com.zhy.spdb.
import java.io.IOE
import javax.servlet.ServletC
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.springframework.beans.factory.annotation.A
import org.springframework.web.context.support.SpringBeanAutowiringS
import com.zhy.spdb.sso.service.IUserS
public class LoginServlet extends HttpServlet{
private static final long serialVersionUID = -1482237L;
@Autowired
private IUserService userS
public void init(ServletConfig config) throws ServletException {
super.init(config);
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
String username = request.getParameter("username");
String password = request.getParameter("password");
String service = request.getParameter("service");
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext())
我的热门文章在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我在springmvc中使用@Autowired注解可以注入HttpServletRequest对象,但是在注入HttpServletResponse之后却报错,启动直接报错
附代码如下
@Autowired
public HttpServletR
@Autowired
public HttpServletR
我知道可以直接在方法中把request和response当做参数传递进去的,但是我只是想知道这样为什么不行,另外想请大神们指导一下应该用哪种方法?
报错下线如下:
严重: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neucloudOauth2Controller': Injection of autowired nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: public javax.servlet.http.HttpServletResponse com.isv.spi.controllers.NeucloudOauth2Controller. nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [javax.servlet.http.HttpServletResponse] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:442)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:339)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1279)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1192)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5210)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5493)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: public javax.servlet.http.HttpServletResponse com.isv.spi.controllers.NeucloudOauth2Controller. nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [javax.servlet.http.HttpServletResponse] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:502)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:282)
... 28 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [javax.servlet.http.HttpServletResponse] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:920)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:789)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:474)
... 30 more
@Autowired
private DzyOauthS
@Autowired
private HttpServletR
DzyOauthController类需要注入上面2个参数,下面是项目启动,注入的过程日志。
13:37:09,582 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Creating shared instance of singleton bean 'dzyOauthController'
13:37:09,582 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Creating instance of bean 'dzyOauthController'
13:37:09,583 DEBUG [org.springframework.beans.factory.annotation.InjectionMetadata] - Registered injected element on class [com.ucfgroup.framework.httpIntf.neucloud.dzy.controller.DzyOauthController]: AutowiredFieldElement for private com.ucfgroup.framework.httpIntf.neucloud.dzy.service.DzyOauthService com.ucfgroup.framework.httpIntf.neucloud.dzy.controller.DzyOauthController.service
13:37:09,583 DEBUG [org.springframework.beans.factory.annotation.InjectionMetadata] - Registered injected element on class [com.ucfgroup.framework.httpIntf.neucloud.dzy.controller.DzyOauthController]: AutowiredFieldElement for private javax.servlet.http.HttpServletRequest com.ucfgroup.framework.httpIntf.neucloud.dzy.controller.DzyOauthController.request
13:37:09,583 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Eagerly caching bean 'dzyOauthController' to allow for resolving potential circular references
13:37:09,583 DEBUG [org.springframework.beans.factory.annotation.InjectionMetadata] - Processing injected method of bean 'dzyOauthController': AutowiredFieldElement for private com.ucfgroup.framework.httpIntf.neucloud.dzy.service.DzyOauthService com.ucfgroup.framework.httpIntf.neucloud.dzy.controller.DzyOauthController.service
13:37:09,584 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'dzyOauthService'
13:37:09,584 DEBUG [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] - Autowiring by type from bean name 'dzyOauthController' to bean named 'dzyOauthService'
13:37:09,584 DEBUG [org.springframework.beans.factory.annotation.InjectionMetadata] - Processing injected method of bean 'dzyOauthController': AutowiredFieldElement for private javax.servlet.http.HttpServletRequest com.ucfgroup.framework.httpIntf.neucloud.dzy.controller.DzyOauthController.request
13:37:09,585 DEBUG [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] - Autowiring by type from bean name 'dzyOauthController' to bean named 'com.sun.proxy.$Proxy19@14e97bf6'
13:37:09,585 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Finished creating instance of bean 'dzyOauthController'
可以看出,SpringMVC为了创建以及缓存 dzyOauthController 对象,先注入了一个属性dzyOauthService,这个是正常的私有属性的注入
同时在注入HttpServletRequest的时候,注入的内容是一个代理
Autowiring by type from bean name 'dzyOauthController' to bean named 'com.sun.proxy.$Proxy19@14e97bf6'
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
因为Request 和 Response 都是针对一次请求的
如果你只用@Autowire 或者 @Resource 注解,依赖都是在应用启动时注入的,当你应用启动的时候请求还没来呢,哪儿来的 Request和Response对象啊。所以当你需要Request 和Response对象时,需要将其放到controller的方法的参数中,这样每次请求时,Spring MVC框架就会自动将HttpServeletRequest 或 HttpServeletResponse对象注入。
PS:Request对象表示一次请求,里面包含了本次请求的所有信息,包括Http Header和 Body,Response对象表示对请求的响应,可以设置响应的header和body
==================================修改在Spring MVC中,bean的scope有singleton, prototype, request, session等级别request级别表示每次http请求时都会创建新的对象,在spring mvc中,如果依赖了HttpServletRequest 和 HttpServletResponse对象,就会在每次请求时重新计算依赖,创建新示例
如下图所示,request和response都能取到,而且每次请求时都会创建新的实例
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
本人小白,刚刚入住社区我在项目中加入,是可以正常启动的,你可以试试@Autowired(required=false)让注解不进行检查,应该就会好 。从你的报错信息来看,是没有找到对应的bean,出现这种问题,最大的可能就是没有进行bean的注入,不管是xml注入还是注解,都检查一下吧....另外项目中貌似没有这么用的,SpringMVC就是倡导独立的request和response,这也是和struts的一点不同,具体的不同点,可以查查~我做的项目中,对request和response 都是方法级的,每个方法独享request和response。当作参数。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
错误中已经说明容器中没有request和response对象,自然无法依赖注入来实例化对象。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Servlet是服务器创建的,因此,不属于IOC管理,所以不能用自动装配,你可以在Controller里边,使用参数绑定例如Controller的一个login方法
@RequestMapping("/login")
public ModelAndView login(HttpServletRequest req) {
// 在这里就可以直接把对应的request对象放进来了,直接可以通过req参数使用了
// 比如req.getParameter("username") req.getAttribute("")……
直接这样子就可以注入了。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
* 加载request数据到实体对象
* @param request
* @param response
@ModelAttribute
public void setReqAndRes(HttpServletRequest request, HttpServletResponse response) {
this.request =
this.response =
this.session = request.getSession();
ajaxResult = new AjaxResult();
autotest.bingDataToEntity(request, ControllerTemplate.this);
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
因为SpringMvc是基于方法级别的,xxController是单例。在xxController类中定义成员变量是共享的,而你所需要的req/res是当前请求的,不是共享的。因此req/res需要放在方法中。
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:1、搭建SpringMVC框架步骤:
1)配置部署描述符(web.xml): &servlet&
&servlet-name&springmvc&/servlet-name&
&servlet-class&
org.springframework.web.servlet.DispatcherServlet&!--指定servlet的全名,此是springmvc自带的DispatcherServlet --&
&/servlet-class&
&!-- load-on-startup这个参数可选,如果存在则在程序启动时装载servlet并调用init方法,若不存在则第一个请求时加载 --&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&springmvc&/servlet-name&
&url-pattern&/&/url-pattern&&!-- /表示将所有URL映射到此servlet --&
&/servlet-mapping&--------------------------------------------------------------------------------------------------------------------------------------------------
2)配置SpringMVC配置文件: &?xml version="1.0" encoding="UTF-8"?&
&!-- SpringMVC的配置文件需在WEB-INF目录下,命名方式必须为servletName-servlet.xml servletName是部署描述符中(web.xml)&servlet-name&springmvc&/servlet-name&的名字 --& &beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"&
&bean name="/getMsg" class="org.great.action.GetMsgTestAction"&
&!-- name为映射路径,如&form action="getMsg"&
class为进入此映射路径后所调用的类--&
&/bean& &/beans&
--------------------------------------------------------------------------------------------------------------------------------------------------
3)实现Controller接口: @Override public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
GetMsgBean gmb = new GetMsgBean();
gmb.setUserName(req.getParameter("userName"));
gmb.setPwd(req.getParameter("pwd"));
//向前台返回一个页面、模型名称及模型,在前台可以通过EL表达式根据模型名称取得实例中的属性${getMsgBean.userName }
return new ModelAndView("MyJsp.jsp", "getMsgBean", gmb); }==================================================================================================================================================2、注解:
1)依赖注入: @Autowired:可以处理构造器注入和setter注入(构造器注入首选)(按byType进行注入) @Resource:只能处理setter注入(setter注入首选)(默认按byName注入,可对type进行设置)--------------------------------------------------------------------------------------------------------------------------------------------------
2)自动扫描标记:(在类上有次标记,可自动扫描进spring容器中进行定义,无需再次在容器中自定义) @Component 通用注解
@Repository
持久化层组件注解
业务层组件注解
@Controller
控制层组件注解
@PostConstruct
public void init(){}//初始化回调方法
@PreDestroy
public void destroy(){}//销毁回调方法--------------------------------------------------------------------------------------------------------------------------------------------------
3)@Value("#{user.userName}")
""中的值可以是基本类型,也可以是从容器中引用来的ID--------------------------------------------------------------------------------------------------------------------------------------------------==================================================================================================================================================3、集合注入:&util:list /&、&util:set /&、&util:map/&、&util:properties /&
1)可使用注解@Value("#{stuList}")将此list的值赋值给bean中的属性(&util:set /&、&util:map/&类似) &util:list id="stuList"&
&value&A&/value&
&value&B&/value& &/util:list&--------------------------------------------------------------------------------------------------------------------------------------------------
2)使用util:properties读取文件,之后使用#{user.userName}获得文件中属性值 &util:properties id="user" location="classpath:userText.properties"&&/util:properties&==================================================================================================================================================4、访问静态文件,如jsp、js、css
1)方案一: &servlet-mapping&
&servlet-name&default&/servlet-name&
&url-pattern&*.jpg&/url-pattern&
&/servlet-mapping&
&servlet-mapping&
&servlet-name&default&/servlet-name&
&url-pattern&*.js&/url-pattern&
&/servlet-mapping&
&servlet-mapping&
&servlet-name&default&/servlet-name&
&url-pattern&*.css&/url-pattern&
&/servlet-mapping& --------------------------------------------------------------------------------------------------------------------------------------------------
2)方案二:使用&mvc:resources/&元素 &mvc:resources mapping="/images/**" location="/images/" /&//location指定静态资源的位置==================================================================================================================================================5、文件上传:(多文件上传:JSP页面&input type="file" name="file" multiple="multiple"/&) &!-- 上传文件 --&
&bean id="multipartResolver" class="org.springframework.monsMultipartResolver"/&
@RequestMapping("/upLoad") public String upLoad(@RequestParam("file") MultipartFile file[]){
for(MultipartFile mf : file){
String fileName = mf.getName();
String fileContentType = mf.getContentType();
String fileAllName = mf.getOriginalFilename();
if (!mf.isEmpty()){
//使用StreamsAPI方式拷贝文件
Streams.copy(mf.getInputStream(),new FileOutputStream("E:/"+mf.getOriginalFilename()),true);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}PS: &!-- 文件上传中文乱码,在spring的配置文件中定义以下bean --&
&bean id="multipartResolver" class="org.springframework.monsMultipartResolver" p:defaultEncoding="utf-8"/& &/beans&--------------------------------------------------------------------------------------------------------------------------------------------------***一个关于上传的工具类:
public class FileUploadUtil {
public static final String FILE_PATH = "upload";//要保存的路径
//文件上传
public static String uploadFile(MultipartFile file, HttpServletRequest request) throws IOException {
String fileName = file.getOriginalFilename(); //获得服务器的绝对路径
String path = request.getSession().getServletContext().getRealPath(FILE_PATH);
File tempFile = new File(path, new Date().getTime() + String.valueOf(fileName));
if (!tempFile.getParentFile().exists()) {
tempFile.getParentFile().mkdir();
if (!tempFile.exists()) {
tempFile.createNewFile();
//保存(MultipartFile类的方法)
file.transferTo(tempFile);
return tempFile.getName();
public static File getFile(HttpServletRequest request, String fileName) {
String path = request.getSession().getServletContext().getRealPath(FILE_PATH);
return new File(path, fileName);
}} ==================================================================================================================================================6、文件下载: @RequestMapping("/downLoad") public ResponseEntity&byte[]& down() {
指定文件,必须是绝对路径
File file = new File("D:/新2015培训手册.doc");
下载浏览器响应的那个文件名
String dfileName = file.getName();
下面开始设置HttpHeaders,使得浏览器响应下载
HttpHeaders headers = new HttpHeaders();
设置响应方式
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
byte a[] =
设置响应文件
headers.setContentDispositionFormData("attachment", new String(dfileName.getBytes("gbk"),"iso-8859-1"));
a = FileUtils.readFileToByteArray(file);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
把文件以二进制形式写回
return new ResponseEntity&byte[]&(a, headers, HttpStatus.CREATED); }==================================================================================================================================================7、
&context:component-scan/& 扫描指定的包中的类上的注解,常用的注解有:
@Controller 声明Action组件
声明Service组件
@Service("myMovieLister")
@Repository 声明Dao组件
@Component
泛指组件, 当不好归类时.
@RequestMapping("/menu")
用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName") (可以直接省略get\set方法)
@Autowired 用于注入,(srping提供的) 默认按类型装配
@Transactional( rollbackFor={Exception.class}) 事务管理
@ResponseBody(使用ajax必须在action方法上加的注解)
@Scope("prototype")
设定bean的作用域==================================================================================================================================================8、
@Controller 控制器(注入服务)
@Service 服务(注入dao)
@Repository dao(实现dao访问)
@Component (把普通pojo实例化到spring容器中,相当于配置文件中的&bean id="" class=""/&)==================================================================================================================================================9、controller层使用@controller注解@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法。通俗来说,被Controller标记的类就是一个控制器,这个类中的方法,就是相应的动作。@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。比如下面,跳转到登录页面的路径就是localhost:8080/xxx/hello1/hello
@RequestMapping@RequestMapping(value="/hello1") 等同 @RequestMapping("/hello1")等同于/hello1
/hello1/hello@RequestMapping(value="/hello1")public class HelloController { @RequestMapping(value="/hello",method=RequestMethod.GET) public String sayHello(Model model){
model.addAttribute(key, value)//前台使用${key}可以去得到model中的value==================================================================================================================================================10、service采用@service注解@Service("userService")注解是告诉spring,当Spring要创建UserService的实例时,bean的名字必须叫做"userService",这样当Action需要使用UserService的实例时,就可以由Spring创建好的"userService",然后注入给Action。==================================================================================================================================================11、dao层使用@repository注解@Repository(value="userDao")注解是告诉Spring,让Spring创建一个名字叫“userDao”的UserDaoImpl实例。当Service需要使用Spring创建的名字叫“userDao”的UserDaoImpl实例时,就可以使用@Resource(name = "userDao")注解告诉Spring,Spring把创建好的userDao注入给Service即可。
@Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,我们也要清楚,@Autowired是根据类型进行自动装配的。==================================================================================================================================================12、mapper层使用@Component注解==================================================================================================================================================13、转发与重定向可以通过redirect/forward:url方式转到另一个Action进行连续的处理。 可以通过redirect:url 防止表单重复提交。 写法如下:return "forward:/order/add";return "redirect:/index.jsp";==================================================================================================================================================14、AJAX的用法:@ResponseBody//使用此注解可以返回JSON数据可以在action中实例一个Map对象,然后将前台要的数据存储在这个对象中直接return map这个对象,前台ajax的回调函数自然可以得到JSON数据==================================================================================================================================================15、@RequestParam("role_no"):等同于request.getParameter("role_no")可以取得前台input中name="role_no"的value值==================================================================================================================================================16、在JSP页面中使用SpringMVC标签:在web.xml中配置: &jsp-config&
&span style="white-space:pre"&&/span&
&taglib-uri&/spring&/taglib-uri&
&span style="white-space:pre"&&/span&
&taglib-location&/WEB-INF/spring.tld&/taglib-location&
&/taglib& &/jsp-config&在WEB-INF目录中导入:spring-form.tld、spring.tld==================================================================================================================================================
阅读(...) 评论()

我要回帖

更多关于 springmvcservlet.xml 的文章

 

随机推荐