---恢复内容开始---

一、搭建步奏

  1、新建web项目,进行必备Jar包的拷贝,放到lib目录以便项目的引用。

  2.拷贝框架的核心配置文件Struts.xml,放到src目录下,保留一个基本配置即可

  3、在我们的web.xml文件中进行核心调度器的配置:StrutsPrepareAndExecuteFilter类是Struts2的控制器,用于过滤客户端的所有请求。它是Struts2框架的入口,如果未在web.xml中进行配置,Struts2框架就会失去作用。

<filter>
<filter-name>struts2</filter-name>
<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>

  3.配置action:

<package name="book" extends="default">
<action name="book_*" class="com.xullent.struts.demo.action.GetBookAction" method="{1}">
<result name="list">/book/list.jsp</result>
<result name="save">/book/save.jsp</result>
<result name="add">/book/add.jsp</result>
<result name="toIndex">/index.jsp</result>
<!-- 登陆拦截器检查 , Action的配置都是引用-->
<interceptor-ref name="Stack" />
</action>
</package>

    1) package:默认包,项目的所有包都可以继承这个包,获得一些默认的行为;可以设置namespace,namespace的作用:和java的package作用一样,防止重复路径。

    2)action属性:

      a) name:action请求的名称。

      b) class:指定class类,默认不写为ActionSupport类。

      c) method:指定处理逻辑的方法名。默认为excute方法。

      d) 通配符:name使用通配符,method适配通配符

      

<action name="emp_*" class="com.chinasoft.struts2.demo.action.EmpAction" method="{1}">
</action>

      e) result: name对于返回结果集;

      resultType:返回方式:共四种:chain:转发Action;dispatcher:转发页面,默认值;redirect:主要是应用到页面的重定向,超链接;redirectAction:Struts2的action的重定向。

    3)action类的写法:

    a)实现Action,重写execute

public class EmpAction implements Action ,ModelDriven<Emp> {
private Emp emp;
private EmpService service = null;
private List<Emp> emplist;
/**
* 默认走的方法
*/
@Override
public String execute() throws Exception {
emplist = service.queryEmp();
return SUCCESS;
}
}

    b)可以不继承,但是在默认情况下要有execute方法

    c)实现ModelDriven<T>:实现getModel方法,该方法可以减少页面JavaBean类的长度和复杂度:

public User getModel() {
if( user == null ) user = new User();
return user;
}

    d) 继承ServletActionContext,可以获得可以获得Servlet的API

//获得HttpSession,并放入属性: ActionContext.getContext().getSession().put("user", getUser().getName());

    e) 继承ActionContext,获取Map对象,对应HttpServletRequest / HttpServletResponse 等等。

最新文章

  1. CSS里width: auto\9 是什么意思
  2. C#协变和逆变
  3. Visual Studio 2015 预览版 - 支持跨平台开发Android/iOS应用程序(内置安卓模拟器)
  4. C语言中的字符串截取函数
  5. Data URI(转)
  6. Dalvik详解
  7. 如何搭建ssh服务?
  8. window环境下搭建react native及相关插件
  9. BZOJ_3573_[Hnoi2014]米特运输_树形DP+hash
  10. Flask 系列之 部署发布
  11. volatile CAS区别
  12. 快速搭建日志系统——ELK STACK
  13. 背水一战 Windows 10 (53) - 控件(集合类): ItemsControl 的布局控件 - ItemsStackPanel, ItemsWrapGrid
  14. 【python3】window下 vscode 配置 python3开发环境
  15. python__new__与__init__的区别
  16. DNS必知必会
  17. fc26 url
  18. Spark(九)Spark之Shuffle调优
  19. R read.table函数的check.names参数
  20. qt学习(三) qt布局

热门文章

  1. 项目管理工具 Redmine 安装试用手记
  2. Get Resultset from Oracle Stored procedure
  3. 手机新闻网站,掌上移动新闻,手机报client,jQuery Mobile手机新闻网站,手机新闻网站demo,新闻阅读器开发
  4. String.Join的实现
  5. NET开发面向对象2
  6. Ninject是一款.Net平台下的开源依赖注入框架
  7. TeamCity vs Jenkins: Which is the Better Continuous Integration (CI) Server for .NET Software Development?
  8. Effective C++(16) 成对使用new和delete时要采取相同的形式
  9. 自承载Web API
  10. Asp.Net中使用Couchbase——Memcached缓存使用篇