Ajaxstruts 初体验

1. 什么是Struts2
struts2是以WebWork的设计思想为基本,吸收了Struts1的一对有点,建立了分外WebWork和Struts1的MVC框架。

  • 5.1
    使用ActionContext类获取ServletAPI对象对应的MAP对

【使用Map对象替代ServletAPI中的HttpServletRequest, HttpSession和
ServletContext】

6. Struts 2 标签

5. Struts2访问servletAPI对象

 

6.1 UI标签: 表单标签、非表单标签、Ajax标签
<s:form></s:form> <s:textfield></s:textfield>
……

 

3. Struts2 的获取
http://struts.apache.org

1)
编写开发处理请求的Action类,并落实具体的拍卖请求的不二法门,该模式需要回到一个字符串类型的结果【action类,
extends ActionSupport】
2) 编写struts.xml文件,对Action举办安排【位于src的根目录下】
3) 编写与Action相关的JSP页面

  • 5.2 struts2 向Action
    注入ServletAPI对象对应的Map对象

6.2 通用标签: 条件标签 <s:if> <s:elseif> <s:else>
迭代标签: <s:iterator>

 

  • 5.3 与Servlet
    API耦合的走访格局

1) 获得request参数 【get()】
ActionContext ac = ActionContext.getContext();
Map request = (Map)ac.get(“request”);

2) 获取对象的HttpSession对象的Map对象【getSession()】
Map session = ActionContext.getContext().getSession();

  • 4.1 确认环境

演示: Action页面保存用户名: session.put(“name”,”values”);
         JSP页面获取用户名: ${sessionScope.name}

  • 4.2 代码编写

4. Struts2 的应用

1.1 WebWork: 强调系统里头的松耦合,使用拦截器来落实控制。
不借助于于web容器,
从而解决了框架对ServletAPI的紧密耦合,使得测试更加便宜。同时,在显示层帮忙更多的视图技术,开发更灵敏。

3) 获取相应的ServletContext对象的Map对象 【getApplication()】
Map app = ActionContext.getContext().getApplication();

标签分为两类: UI标签(UI Tag) 和通用标签 (Generic Tag)
<%@taglib uri=”/struts-tags” prefix=”s” %>

2. struts的得失
【优点】
2.1. 落实MVC形式,结构清晰,使开发者只关心业务逻辑的实现.
2.2. 有增长的tag可以用
,Struts的标记库(Taglib),如能灵活利用,则能大大提升开发效用。其余,就现阶段境内的JSP开发者而言,除了利用JSP自带的常用标记外,很少开发自己的记号,或许Struts是一个很好的起源。
2.3.
页面导航.页面导航将是后来的一个提高大势,事实上,这样做,使系统的系统更加清楚。通过一个部署文件,即可把握总体连串各部分之间的关联,这对于前期的护卫有着惊人的利益。尤其是当另一批开发者接手这些连串时,这种优势显示得尤其明朗。
2.4. 提供Exception处理体制 .
2.5. 数码库链接池管理
2.6. 支持I18N
【缺点】
2.1
转到显示层时,需要配置forward,每四遍转到显示层,相信大部分都是间接转到jsp,而涉及到转会,需要安排forward,尽管有十个显示层的jsp,需要配置十次struts,而且还不包括有时候目录、文件变更,需要再行修改forward,注意,每一回修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启航服务器,假若事情转移复杂频繁的系统,这样的操作简便不可想像。现在就是这般,几十过六人同时在线使用我们的系统,我们可以想像一下,烦恼有多大。
2.2 Struts
的Action必需是thread-safe格局,它可是允许一个实例去处理所有的哀求。所以action用到的具有的资源都必不可少统一联合,这个就挑起了线程安全的题目。
2.3 测试不方便.
Struts的各样Action都同Web层耦合在一起,那样它的测试倚重于Web容器,单元测试也很难实现。可是有一个Junit的恢宏工具Struts
TestCase可以兑现它的单元测试。
2.4 类型的转换.
Struts的FormBean把具备的多少都作为String类型,它可以行使工具康芒斯(Commons)-Beanutils举办项目转化。但它的转会都是在Class级别,而且转化的项目是不足配置的。类型转化时的错误消息重回给用户也是丰富费力的。
2.5 对Servlet的借助过强. Struts处理Action时必需要依赖ServletRequest
和ServletResponse,所有它摆脱不了Servlet容器。
2.6
前端说明式语言方面.Struts集成了JSTL,所以它首要采纳JSTL的表明式语言来获取数据。然而JSTL的表明式语言在Collection和索引属性方面处理显得很弱。

1) 在品种中引入Struts2 jar包
struts2-core xwork-core ognl fremarker javassist commons-fileupload
commons-io Commons-lang
2) 修改工程的web.xml文件,配置过滤器

相关文章