-
一 工作原理 在Struts2框架中的处理大概分为以下几个步骤 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action 4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy 5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类 6 ActionProxy创建一个ActionInvocation的实例。 7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。 8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper 二 工作流程 1、客户端浏览器发出HTTP请求. 2、根据web.xml配置,该请求被FilterDispatcher接收 3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton 4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。 5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面 6、返回HTTP响应到客户端浏览器查看全部
-
strut2工作原理 请求通过过滤器,如果请求中含有.action的后缀,则传给actionmapper进行处理查看是否有相应的action请求,再返回给过滤器,过滤器传给actionproxy,actionproxy通过config查找Struts.xml文件里面是否含有对应的action,action通过一系列的过滤器后对请求进行处理,然后返回字符串找到对应视图,再返回给response查看全部
-
首先配置包名 <package name="default" namespace="/" extends="struts-default"> <action name="helloworld" class="com.imooc.action.HelloWorldAction"> <result>/result.jsp</result> 之后需要去创建这个jsp页面 </action> </package> 1.导入Struts常用的jar包 2.buildpath引用导入的包 3.xml中创建过滤器 <filter> <filter-name>name</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> 映射 <filter-mapping> <filter-name>name</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 4.创建Struts中的核心文件 New-other-XML文件-Struts.xml,并写入: <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> </struts> 5.创建action(这个类要继承ActionSupport),这个类主体中调用继承/接口execute()方法,这个方法返回success; 6.配置Struts文件中的映射 <struts> <package name="default" namespace="/" extends="struts-default"> <action name=" " class="src中action类的地址"> <result>/result.jsp</result> </action> </package> </struts> 配返回这个result.jsp页面查看全部
-
要导入的包:(共9个) commons-fileupload(上传下载包) commons-io(输入输出包) commons-lang 3-3.2(基础包) commons-logging(日志包) freemarker(模板引擎,通过模板生成文本输出的通用工具) structs2-core(核心包) xwork-core(一些类基于xwork) ognl(表达式) javassist-3.11.0.GA.jar(解析java类文件的一个包) 之后配置web.xml文档 web项目在启动tomcat时第一个启动的文件就是web.xml 首先定义过滤器 <filter> <filter-name>struct2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 这里写完后按住ctrl点击鼠标左键如果可以跳转则证明正确 </filter> filter的映射 <filter-mapping> <filter-name>struct2</filter-name> <url-pattern>/*</url-pattern> /*是所有的都需要过滤 </filter-mapping> 映射与文件的filter-name应该保持一致 之后再src中创建struts的核心xml struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> </struts> 之后创建action包 创建action类让其继承ActionSupport Struts2中有一个默认的方法不指定方法名的话有一个execute()方法 之后去配置struts.xml中的action文件查看全部
-
jar包下载地址 http://struts.apache.org http://people.apache.org/builds/struts/ 搭建 struts2环境步骤查看全部
-
MVC模式查看全部
-
MVC的定义是什么?<br> MVC是模型视图控制器(Model View Controller),一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。<br> SP+JavaBean=Model1:适用于小型网站的开发<br> JSP+Servlet+JavaBean=Model2:最典型的MVC模式<br> <br> 在Struts中,Controller就是action。查看全部
-
Struts是什么? Struts是流行和成熟的基于MVC设计模式的Web应用程序框架。 使用Struts的目的: 为了帮助我们减少在运用MVC设计模型来开发Web应用时间。查看全部
-
处理类型结果!!!查看全部
-
提交的检查在ActionSupport类中的validate方法中,如果在这个方法中this.addFieldError()方法执行过,会自动return INPUT,也可以在其他方法中手动返回INPUT!查看全部
-
当list中存储的不是简单的String类型的时候,如User类型,可以通过前端这样设置name="booklist[0].username"来进行映射获取参数的值查看全部
-
当遇到后端有list的时候,需要通过前端来设置name为booklist[0]类似,来达到传递list参数的效果查看全部
-
第三种接收参数的方法:使用ModelDriven<T>接口,这个action必须实现这个接口的public T getModel()方法。此时声明的属性必须实例化,eg: private User user = new User(); 同时不需要getter和setter。前端的name也只需要写username和password就可以,不需要再加域了。这种方法时最推荐的方法,因为可以减少前后端的耦合!查看全部
-
第二种接受参数的方法:使用DomainModel,将username 和password两个属性封装为一个类User(必须是标准的JavaBean),在action中声明这个属性:private User user; 同时为user设置getter和setter;在前端中的name需要设置为user.name和user.password,才能映射成功查看全部
-
第一种接收参数的方法:直接在action类中创建相应的属性和getter和setter,和前端的name名字相同。eg:前端的username,在action类中就要建立一个private String username; Struts会自动映射为这个属性赋值查看全部
举报
0/150
提交
取消