Struts概述

1、  谈谈你对Struts 2 的理解?
Struts 2 是实现MVC 模式的Web 层框架。基于WebWork 核心,并具有Struts1 的一些优点。主要实现的是控制器部分的功能,可以和多种页面技术(完成视图功能)配合使用。
2、  在MVC 中控制器的主要功能有哪些?
     协调输入、输出和模型之间的关系。从输入界面获取输入信息(通过request.getParameter 方法),根据请求选择调用模型的业务方法,执行完之后,如果需要把结果传递给输出界面,可以把信息保存在request 中或者session 中(setAttribute 方法),根据调用模型的结果,选择界面对用户进行响应。
3、 Struts2 是如何实现MVC 的控制器呢?
Struts2 的控制器包括中心控制器、struts.xml 和用户编写的Action 。中心控制器是框架提供的,只需要在web.xml 进行配置一次即可。用户在实现功能的时候,需要编写每个功能对应的Action( 多个功能可以对应一个Action) ,然后在struts.xml 中进行配置。
如何实现MVC 的控制其功能:
从输入界面接收输入信息:该功能由框架完成,用户需要做的是Action 中编写和输入界面中输入元素对应的属性,并提供set 方法。框架从request 中获取输入值,然后通过Action set 方法对属性赋值。
选择调用业务方法,每个业务方法通常对应一个Action (通常是Action 的一个方法),界面发送的请求与具体的Action 的对应关系是在struts.xml 中进行配置的。
把值从控制器传递到界面,用户需要在Action 提供相应的属性,并且提供get 方法,具体的传值过程是由框架完成的。
如何响应?在Action 中调用业务方法之后,方法返回一个表示输出界面的字符串,在配置文件struts.xml 中配置表示界面的字符串具体对应哪个输出界面。具体的响应过程由框架来完成。
4、  具体使用Struts2 框架开发应用的过程?
第一步:创建Web 工程
第二步:引入Struts 的类库,核心的类库有ognl.jar freemarker.jar struts2-core.jar webwork.jar common-logging ,这些类库最终都应该在web-inf/lib 下面。
第三步:在web.xml 中声明中心控制器。
       <filter>
              <filter-name>struts2</filter-name>
              <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
       </filter>
 
       <filter-mapping>
              <filter-name>struts2</filter-name>
              <url-pattern>/*</url-pattern>
       </filter-mapping>
通过这样的配置,所有的请求都会发送给中心控制器。
第四步:在工程中创建struts2 的配置文件struts.xml 。配置我们编写的每个Action ,还有请求与Action 对应关系,执行结果(字符串)与响应界面的对应关系。一般从其他地方拷贝,不要自己写。
第五步:编写Action ,配置Action 。在开发过程中主要是这一步。
5、  如何编写Action
Action 类可以是普通的类,可以是实现Action 接口的类,可以是继承ActionSupport 的类。Action 接口是execute 方法和几个常量,通常不使用。ActionSupport 实现了Action 接口,并且封装了对国际化和验证的支持,如果项目需要使用验证和国际化等功能,可以继承该类。
Action 类中的方法(控制方法),方法的返回值是字符串,是逻辑名字,表示某个输出界面。方法没有参数。对应每个请求都应该有这样一个方法。
为了获取输入信息,需要定义与输入元素名字相同的成员变量,并提供set 方法。为了输出,需要编写成员变量来表示这些输出信息(在控制方法中对成员变量赋值),并提供get 方法供框架调用。
6、  如何配置Action
struts.xml 中配置。主要包括两部分:请求与具体的Action 的方法的对应关系;Action 中的控制方法返回的字符串与具体的响应界面的对应关系。
请求与Action 方法的对应关系:
²        <action name="login" class="action.UserAction" method="login">
name 指出请求的名字,class 指出Action 类的名字,method 指出方法的名字
²        <action name="login" class="action.UserAction">
如果没有指定method 方法,默认找Action 中的execute 方法
²        也可以在请求中指定方法的名字
login!login.action ,“! ”之前是请求的名字,“! ”之后是方法的名字,这样在配置的时候就可以不指定方法的名字。
执行结果的配置:
<result name="success">/success.jsp</result>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值