准备struts2的学习和开发环境
1 导包
2 参照开发包自带的例子在web.xml文件中配置
3 参照开发包自带的例子编写Action类和配置struts.xml文件
<struts>
    <package name="demo" namespace="/hello/word">
        <action name="test" class="cn.yue.struts2Demo.web.action.TestAction" method="sayHello">
        </action>
    </package>
</struts>

public class TestAction {
public String sayHello()
{
try {
ServletActionContext.getResponse().getWriter().println("hello word!");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}

定位包  只要一旦追溯到了一个最匹配的上层包名,不管这个包中是否存在要访问的Action,都不会再追溯更上层的包名了。
定位action 一旦定位到了某个包下,接着就会在这个包中查找action。由于struts会追溯上层包的特点,所以,用某个包的名称空间的子目录形式也可以访问到该包中的Action,前提是该子目录不存在对应的名称空间。
           namespace属性可以设置为空字符串””,即为默认名称空间,如果struts2定位到的包名中不存在当前要访问的Action ,struts2接着还会在默认名称空间寻找该Action,只有在默认名称空间的包名中还没找到该action时,才报错action找不到的错误。

配置结果视图与视图工作原理
 1 局部视图:在<action>元素中配置<result>元素
        <action name="test" class="cn.yue.struts2Demo.web.action.TestAction" method="sayHello">
          <result name="success">
          <param name="location">/WEB-INF/pages/view.jsp</param>
          </result>
         </action>
 2 全局视图:在<global-results>元素中配置<result>元素
<global-results>
    <result type="plainText">
     <param name="location">/WEB-INF/pages/view.jsp</param>
 </result>
    </global-results>
 3 自定义一个视图类型
 
public class WelcomeResult implements Result {
private static final long serialVersionUID = -6454914993165364620L;
private String group="yue";
public void setGroup(String group) {
this.group = group;
}
public void execute(ActionInvocation invocation) throws Exception {
ServletActionContext.getResponse().reset();
ServletActionContext.getResponse().getWriter().println(group+",welcome to you!");
}
}
<action name="test3" class="cn.yue.struts2Demo.web.action.TestAction" method="sayHello">
        <result name="success" type="welcome">
        <param name="group">zhenhua</param>
        </result>
        </action>
        
        
       <!--  自定义视图 -->
    <result-types>
    <result-type name="welcome" class="cn.yue.struts2Demo.web.result.WelcomeResult"></result-type>
    </result-types>
   
   
 常量配置
 struts-default.xml 
struts-plugin.xml 
struts.xml 
struts.properties 
web.xml

<constant name=“struts.action.extension” value=“do,go”/>
 
 重加载xml文件  
 tomcat 设置context添加<Context reloadable="true">
 struts.configuration.xml.reload,

default.properties文件中 struts.devMode 设为true 在struts.xml中配置 <constant name="struts.devMode" value="true"></constant>

Struts.xml中的默认值与更多配置细节
  1 在根元素<struts>下可以使用include子元素引入其他的配置文件
  2 <action>元素的method属性可以不设置,默认为execute;class属性可以不设置,默认为ActionSupport。 
  3   <result>元素的type属性和name属性都可以不设置,默认值分别为dispatcher和success
  4   在<package>元素下配置<default-action-ref>子元素,用于说明在该包下不存在的action路径映射,都可以统交给一个默认的<action>元素去处理。
  5   在<package>元素下的<default-class-ref>子元素,用于配置该包下的<action>元素的class属性的默认值,前面说的默认值为ActionSupport正是通过这个元素配置的。
  6   使用Config Browser Plugin浏览已经装载的配置信息和列出各个包名称空间下的所有Action的访问链接。

转载于:https://www.cnblogs.com/retacn-yue/archive/2012/09/09/2761281.html

struts2学习笔记二--准备struts2的学习和开发环境相关推荐

  1. ④ESP8266 开发学习笔记_By_GYC 【Ubuntu系统下ESP8266 开发环境搭建】

    目录 ④ESP8266 开发学习笔记_By_GYC [Ubuntu系统下ESP8266 开发环境搭建] 一.安装前准备 1.乐鑫官方的ESP-IDF 编程指南 2.ESP-IDF风格的ESP8266 ...

  2. Adroid学习笔记-入门资料以及V2.3系统开发环境搭建

    今年工作签得比较顺利,签了国内著名的通讯IT企业,同时拿到国内著名即时通讯软件公司,国内著名的通讯IT兼国企母公司和其移动开发子公司等另外三家公司的offer.之后时间便充裕,同时步入通讯行业,对手机 ...

  3. Java学习笔记1.2.1 使用Java集成开发环境 - Eclipse

    文章目录 零.本讲学习目标 一.Eclipse概述 二.下载Eclipse 三.安装Eclipse 四.使用Eclipse (一)启动Eclipse (二)设置工作空间目录 (三)创建Java项目 ( ...

  4. Java学习笔记1.2.2 使用Java集成开发环境 - IntelliJ IDEA

    文章目录 一.IntelliJ IDEA概述 二.下载IntelliJ IDEA (一)访问IDEA官网 (二)下载IDEA - 2020.1 三.安装IntelliJ IDEA (一)安装Intel ...

  5. lua学习笔记(4)-- 搭建mobdebug 远程开发环境

    近期参与公司的项目重构太忙了.很久都没更新博客,今天整理一下最近的 关于lua部分的实现,希望给后来的人一个参考吧. 项目的资料会开源在这 这里 不要在跟我要代码了! https://gitee.co ...

  6. linux学习笔记二

    linux学习笔记二 文章目录 linux学习笔记二 finding finding hyx@hyx-computer:~$ cd mnt -bash: cd: mnt: No such file o ...

  7. wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)

    如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...

  8. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  9. [转载]dorado学习笔记(二)

    原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...

最新文章

  1. 基于FPGA实现的MobileNet V1,FPGA深度学习加速器设计 CNN Accelerators based on FPGAs
  2. jittor 和pytorch gpu 使用效率对比(惊人jittor的算力利用率是pytorch 4-5倍)
  3. java二维数组水平翻转,C 语言 利用二维数组实现对输入的数组进行翻转
  4. python读取图像并相加_python给图像加上mask,并提取mask区域实例
  5. 新概念英语(1-37)Making a bookcase
  6. margin塌陷现象div盒子嵌套盒子外边距合并现象
  7. 苹果mac磁盘清理工具:Pro Disk Cleaner
  8. 含有REF CURSOR 的过程只能有一个out参数?
  9. Spring Security配置放行请求,将参数放置于请求体时放行失效
  10. java 缓存队列_双缓冲队列的java实现
  11. Git commit --amend 修改提交信息
  12. 阿里云Centos8 yum报错Failed to synchronize cache for repo ‘BaseOS‘解决方案,通过换文件的方式来解决。
  13. 齐齐哈尔市大豆长势近8年最好
  14. 【算法宇宙——在故事中学算法】背包dp之完全背包问题
  15. 国产系统-Deepin安装图文(VIP典藏2022版)
  16. 手机性能测试指标及操作
  17. 京东到家大数据平台演进实战
  18. mysql小知识:根据指定日期,获取是当年第几周
  19. SQL Server 2008 R2自定义快捷键快捷查询表的内容
  20. 第一次写需求文档的心酸历程

热门文章

  1. 使用wrapper将java程序注册程windows服务后不生效
  2. python 消息队列 get是从队首还是队尾取东西_python分布式爬虫中消息队列知识点详解...
  3. Pytorch Fashion_MNIST直接离线加载二进制文件到pytorch
  4. matlab cell
  5. 连接MySQL数据库时常见故障问题的分析与解决
  6. MATLAB正太分布函数
  7. java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?
  8. matlab 值法确定各指标权重,Matlab学习系列19. 熵值法确定权重
  9. python作者 google面试_如果Google面试让你用python写一个树的遍历程序
  10. 现在抖音这么火,那么你知道如何用CSS实现抖音字体?