2> How Struts 2 Works】的更多相关文章

The first thing we should consider is that the workflow of figure 1.4 still obeys the sim- pler MVC view of the framework that we saw earlier. In the figure, the FilterDispatcher has already done its controller work by selecting the appropriate actio…
在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中需要用户实现的部分只有三个,那就是struts.xml,Action,Template(JSP),如下图: 2.3.31中的org.apache.struts2.dispatcher.ActionContextCleanUp已经被标记为@Deprecated Since Struts 2.1.3,2…
1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能.我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行debug. 2. Autowired的定义及作用 作用:Marks a constructor, field, setter method or config method as to be autowired by Spring's dependency injection facilities.…
Struts的拦截器 1.什么是拦截器 Struts的拦截器和Servlet过滤器类似,在执行Action的execute方法之前,Struts会首先执行Struts.xml中引用的拦截器,在执行完所有引用拦截器的intercept方法后,才会执行Action的execute方法. 1.在struts中,把每一个功能都用一个个的拦截器实现:用户想用struts的哪个功能的时候,可以自由组装使用 2.在Struts中,为了方法用户对拦截器的引用,提供了拦截栈的定义,里面可以包含多个拦截器.拦截栈就…
Struts的核心业务 Struts核心业务有很多,这里主要介绍了比较简单一些的: 请求数据的处理,和数据自动封装,类型自动转换 1.Struts中数据处理 1.1.方式1:直接过去servletapi 核心类:ServletActionContext提供的静态方法 /** * * 数据处理方式1: */ public class dataAction extends ActionSupport{ public String execute() throws Exception { //1.请求…
Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name="fileUpload" calss="org.apache.struts2.interceptor.FileUploadInterceptor/> 来完成的. 1.1.Struts完成文件上传的基本步骤 由于功能已经在拦截器就已经完成了,所以在action中就只需要进行配置就可以了…
hibernate文件配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd&…
失败页面fail.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&…
1. struts.xml 文件基本配置: 主要放在资源路径下,配置 sturts2相关的 Action , 拦截器等配置 <struts> <!-- 设置常量 --> <constant name="struts.enable.DynamicMethodInvocation" value="false"/> <constant name="struts.devMode" value="true…
在Java Web项目中,经常要在项目开始运行时启动一个线程,每隔一定的时间就运行一定的代码,比如扫描数据库的变化等等.要实现这个功能,可以现在web.xml文件中定义一个Listener,然后在这个Listener中启动一个线程,在线程里面实现功能. 1. 自定义Listener 在Struts+Spring+Hibernate的Web项目中,web.xml里面一般都会有这样的代码: <listener> <listener-class>org.springframework.w…