struts2学习笔记二--准备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的学习和开发环境相关推荐
- ④ESP8266 开发学习笔记_By_GYC 【Ubuntu系统下ESP8266 开发环境搭建】
目录 ④ESP8266 开发学习笔记_By_GYC [Ubuntu系统下ESP8266 开发环境搭建] 一.安装前准备 1.乐鑫官方的ESP-IDF 编程指南 2.ESP-IDF风格的ESP8266 ...
- Adroid学习笔记-入门资料以及V2.3系统开发环境搭建
今年工作签得比较顺利,签了国内著名的通讯IT企业,同时拿到国内著名即时通讯软件公司,国内著名的通讯IT兼国企母公司和其移动开发子公司等另外三家公司的offer.之后时间便充裕,同时步入通讯行业,对手机 ...
- Java学习笔记1.2.1 使用Java集成开发环境 - Eclipse
文章目录 零.本讲学习目标 一.Eclipse概述 二.下载Eclipse 三.安装Eclipse 四.使用Eclipse (一)启动Eclipse (二)设置工作空间目录 (三)创建Java项目 ( ...
- Java学习笔记1.2.2 使用Java集成开发环境 - IntelliJ IDEA
文章目录 一.IntelliJ IDEA概述 二.下载IntelliJ IDEA (一)访问IDEA官网 (二)下载IDEA - 2020.1 三.安装IntelliJ IDEA (一)安装Intel ...
- lua学习笔记(4)-- 搭建mobdebug 远程开发环境
近期参与公司的项目重构太忙了.很久都没更新博客,今天整理一下最近的 关于lua部分的实现,希望给后来的人一个参考吧. 项目的资料会开源在这 这里 不要在跟我要代码了! https://gitee.co ...
- linux学习笔记二
linux学习笔记二 文章目录 linux学习笔记二 finding finding hyx@hyx-computer:~$ cd mnt -bash: cd: mnt: No such file o ...
- wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)
如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
最新文章
- 基于FPGA实现的MobileNet V1,FPGA深度学习加速器设计 CNN Accelerators based on FPGAs
- jittor 和pytorch gpu 使用效率对比(惊人jittor的算力利用率是pytorch 4-5倍)
- java二维数组水平翻转,C 语言 利用二维数组实现对输入的数组进行翻转
- python读取图像并相加_python给图像加上mask,并提取mask区域实例
- 新概念英语(1-37)Making a bookcase
- margin塌陷现象div盒子嵌套盒子外边距合并现象
- 苹果mac磁盘清理工具:Pro Disk Cleaner
- 含有REF CURSOR 的过程只能有一个out参数?
- Spring Security配置放行请求,将参数放置于请求体时放行失效
- java 缓存队列_双缓冲队列的java实现
- Git commit --amend 修改提交信息
- 阿里云Centos8 yum报错Failed to synchronize cache for repo ‘BaseOS‘解决方案,通过换文件的方式来解决。
- 齐齐哈尔市大豆长势近8年最好
- 【算法宇宙——在故事中学算法】背包dp之完全背包问题
- 国产系统-Deepin安装图文(VIP典藏2022版)
- 手机性能测试指标及操作
- 京东到家大数据平台演进实战
- mysql小知识:根据指定日期,获取是当年第几周
- SQL Server 2008 R2自定义快捷键快捷查询表的内容
- 第一次写需求文档的心酸历程
热门文章
- 使用wrapper将java程序注册程windows服务后不生效
- python 消息队列 get是从队首还是队尾取东西_python分布式爬虫中消息队列知识点详解...
- Pytorch Fashion_MNIST直接离线加载二进制文件到pytorch
- matlab cell
- 连接MySQL数据库时常见故障问题的分析与解决
- MATLAB正太分布函数
- java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?
- matlab 值法确定各指标权重,Matlab学习系列19. 熵值法确定权重
- python作者 google面试_如果Google面试让你用python写一个树的遍历程序
- 现在抖音这么火,那么你知道如何用CSS实现抖音字体?