一、结果页面配置

  1.局部结果页面配置

    
  
<!-- 局部结果页面配置-->
<package name = "demo" extends = "struts-default" namespace = "/">
    <action name = "action1" class = "xxx.xxx.AAction">
          <result name = "ok" >/hello.jsp</result>
      </action>

       <action name = "action2" class = "xxx.xxx.BAction">
            <result name = "ok">/hello.jsp</result>
        </action>
<package>

  

  2.全局结果页面

   当多个action中的方法返回值相同,并且所到的页面也是一样的,这个时候可以进行全局结果页面配置

<!--全局结果页面配置-->
<package name = "demo2" extends = "struts-default" namespace = "/">
        <global-results>
               <result name = "ok">/hello.jsp</result>
          </global-results>
        <action name = "action1" class= "xxx.xxx.AAction"></action>
        <action name = "action2" class = "xxx.xxx.BAction></action>
</package>

  3.当全局和局部都配置了时访问局部结果页面!

二、result标签中的type属性

  该属性是用来配置到路径中的方式(转发or重定向)

   1.dispatcher 默认值  转发

   2.redirect 重定向(此时配置路径时跟转发一样 无需加上项目名)

   3.chain:转发到action,但是一般不用,因为会有缓存问题

   4.redirectAction 重定向到acion(路径直接配置action的访问名即可)

三、Action获取表单数据

Action中没有request不能直接使用request来获取表单数据,我们可以有三种方式来获取

  1.使用ActionContext类

  使用该类创建对象,然后通过一系列方法来进行操作如下图:

  2.使用ServletActionContext类

该类都是静态方法  获取request对象后就可以获取表单数据了 具体操作和servelet中一样

  3.通过特定接口访问

四、封装表单数据

1.原始方法封装:先获去request对象 然后逐个获取表单数据进行封装。

2.属性封装:在action成员变量为位置定义变量,变量名称要和表单输入项的name属性值相同然后生成他们的set方法后执行,这些属性就会被赋值,而后就可以封装了。

3.模型驱动封装:要求action类中创建实体类对象实现ModelDriven借口 和接口中的getModel方法返回创建的对象。

4.表达式封装:在在action中声明实体类然后生成set,get方法,然后在表单属项的name属性中写表达式

5.封装到集合中

  1.封装到list集合中:在action中声明list集合,然后生成(get可以不用),set方法,最后再在表单输入项中写表达式。

2.封装到map集合:在action中声明map集合 并生成set,get方法,最后再在表单输入项中写表达式

注:模型驱动封装和表达式的封装主要在于模型驱动封装一次只能封装一种实体类对象而表达式封装可以封装多个。

  当模型驱动封装和属性封装同时使用时,只执行模型驱动封装。

框架学习之Struts2(二)---基本配置和封装表单数据的更多相关文章

  1. Yii框架学习笔记(二)将html前端模板整合到框架中

    选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...

  2. Spring框架学习之IOC(二)

    Spring框架学习之IOC(二) 接着上一篇的内容,下面开始IOC基于注解装配相关的内容 在 classpath 中扫描组件 <context:component-scan> 特定组件包 ...

  3. Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查

    本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...

  4. 基于Flask框架搭建视频网站的学习日志(三)之原始web表单

    基于Flask框架搭建视频网站的学习日志(三)1.原始Web 表单 本节主要用于体验一下前端后端直接数据的交互,样例不是太完善,下一节会加入Flash处理,稍微完善一下页面 (备注:建议先阅读廖雪峰老 ...

  5. Django---静态文件配置,post提交表单的csrf问题(日后细说),创建app子项目和分析其目录,ORM对象关系映射简介,Django操作orm(重点)

    Django---静态文件配置,post提交表单的csrf问题(日后细说),创建app子项目和分析其目录,ORM对象关系映射简介,Django操作orm(重点) 一丶Django的静态文件配置 #we ...

  6. struts2中token防止重复提交表单

    struts2中token防止重复提交表单 >>>>>>>>>>>>>>>>>>>&g ...

  7. 第二十二章 Django会话与表单验证

    第二十二章 Django会话与表单验证 第一课 模板回顾 1.基本操作 def func(req): return render(req,'index.html',{'val':[1,2,3...]} ...

  8. php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中

    php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中 1.phalcon框架的安装: phalcon框架在windows本地安装可以利用wamp软件,安装之后可以查看对应 ...

  9. amazeui学习笔记--css(HTML元素3)--表单Form

    amazeui学习笔记--css(HTML元素3)--表单Form 一.总结 1.form样式使用:在容器上添加 .am-form class,容器里的子元素才会应用 Amaze UI 定义的样式. ...

随机推荐

  1. struts2和spring mvc的区别

    在项目中使用struts2和spring mvc为了实现后台的业务代码和前台数据之间的传递,现在基本上不会有用struts2的了,几次面试问的最多的关于struts2的问题就是struts2和spri ...

  2. kvm之四:从网上镜像安装虚拟机Centos6.8

    1.再加块硬盘,格式化挂载至新建目录/kvm2下 2.CentOS 6.8镜像地址 http://mirrors.163.com/centos/6.8/os/x86_64/ 3.配置安装参数,执行安装 ...

  3. python提示import XX 不存在,如何排查错误

    1.如何确定文件夹是一个包, 检查包中是否有__init__.py 文件, 在python模块的每一个包中,都有一个__init__.py文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录 ...

  4. echarts词云引用

    最近项目中需要使用echarts的词云图,因为几经波折才引用成功,所以想记下来跟大家分享,(我的随笔不会写那么多让人需要动脑子去理解的东西,就是记录一下步骤,因为经验甚少,底层原理懂得不多,所以就先记 ...

  5. android中与SQLite数据库相关的类

    为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...

  6. PHP对大小写敏感问题

    1. 变量名区分大小写 1 <?php 2 $abc = 'abcd'; 3 echo $abc; //输出 'abcd' 4 echo $aBc; //无输出 5 echo $ABC; //无 ...

  7. IDEA的快捷键的使用

    1.配置Intellij Idea的配置文件从默认c盘转移到其他盘符 找到Intellij idea的安装文件,在bin目录下找到idea.properties配置文件,如下把Idea的配置文件夹和I ...

  8. JS常见操作,日期操作,字符串操作,表单验证等

    复制代码 //第一篇博文,希望大家多多支持 /***** BasePage.js 公共的 脚本文件 部分方法需引用jquery库 *****/ //#region 日期操作 //字符串转化为时间. f ...

  9. Python+reuqests自动化接口测试

    1.最近自己在摸索Python+reuqests自动化接口测试,要实现某个功能,首先自己得有清晰的逻辑思路!这样效率才会很快! 思路--1.通过python读取Excel中的接口用例,2.通过pyth ...

  10. Beta 第六天

    今天遇到的困难: github服务器响应很慢 推图的API接口相应较慢,超过了初始设定的最大延迟时间,导致了无法正确返回图片 ListView滑动删除Demo出现了某些Bug,这些Bug可能导致了某些 ...