初学structs2,简单配置
一、structs2-demo1项目下新建structs.xml文件,文件名必须是structs
二、package节点配置及其子节点配置
<!--name:单纯给包起个名字,保证和其他包不重名就好
namespace:为action访问加上一层或多层路径
extends:继承一个其他包,目的是引入其他包配置-->
<package name="hello" namespace="/aaa" extends="structs-default">
<!--name:为action类加标识,一般使用Action类名称,访问时便于找到action
class:action的完整类名
method:action中的处理方法
demo中创建了HelloAction类,在包cn.hjp.action下,里面有个excute方法,方法返回 success-->
<action name="HelloAction" class="cn.hjp.action.HelloAction" method="excute">
<!--name:返回结果的标识,用于找到结果路径
type:可以决定跳转到结果的方式=》转发(dispatcher),重定向······-->
<result name="success" type="dispatcher">/index.jsp</result>
</action>
</package>
三、在web.xml文件下添加filter并配置
<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>/*</url-pattern>
    </filter-mapping>
四、java代码
package cn.hjp.action;
public class HelloAction {
    public String excute() {
        System.out.println("structs测试");
        return "Success";
    }
}
访问地址:http://localhost:8080/structs2-demo1/aaa/HelloAction.action
五、修改structs2某些特定的属性配置/org/apache/struts2/default.properties
当然不会在源文件上修改,修改方式就是在structs2.xml配置文件上配置常量的方式修改,比如修改访问路径扩展名
配置中加入 <constant name="struts.action.extension" value="do">
然后访问上面的地址改为 http://localhost:8080/structs2-demo1/aaa/HelloAction.do
六、在structs2.xml中引入外部配置文件使用include标签
<include file="文件完整路径"></include>
七、补充,动态方法调用之structs2默认调用方式(使用感叹号分割类和方法)
确保structs2下default.properties文件下属性struts.enable.DynamicMethodInvocation = true,默认就是true
如上的访问方式可改为http://localhost:8080/structs2-demo1/aaa/HelloAction!excute.action
可以将action配置中的method属性去除,也可不去(如果method不去除,上一个访问方式也可以访问成功)
八、补充,动态方法调用之structs2自定义调用方式(使用通配符)
更改action节点<action name="HelloAction" class="cn.hjp.action.HelloAction" method="excute">中的name属性和method属性
<action name="HelloAction_*" class="cn.hjp.action.HelloAction" method="{1}">
如上的访问方式可改为http://localhost:8080/structs2-demo1/aaa/HelloAction_excute.action
默认访问方式依然可以成功
九、补充,动态方法调用之通配符方式扩展
action节点及其result子节点改为
<action name="*_*" class="cn.hjp.action.{1}" method="{2}">
<result name="success" type="dispatcher">/{1}_{2}.jsp</result>
</action>
如果依然按照上面访问方式,则页面要改为HelloAction_excute.jsp
十、package属性namespace简述
此属性为可选属性,如果不配置,会在默认命名空间下查找访问的文件,如果配置了多级,会逐级从下到上直到找到匹配的文件为止。
如访问地址/a/b/c/test.jsp,首先在c下面找,没有则在b下面找,没有则在a下面找,没有则在根位置找,没有则在默认位置找(一般默认位置为根位置),再没有就报404未找到错误
十一、普通Action类简述
此类可实现接口Action,但在开发中一般继承自ActionSupport类,因为此类中实现了Action接口和表单验证、国际化、以及序列化接口
十二、属性默认值
继承ActionSupport类的action,在action配置中,如果没有method,默认execute;没有class,默认com.opensymphony.xwork2.ActionSupport,依据structs-default.xml文件package节点下 <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />;
在result配置总,如果没有name,默认success;如果没有type,默认dispatcher,依据structs-default.xml文件package下的resulttypes下<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
十三、注意
1、structs.xml配置result节点的name值字符串大小写要与action方法返回字符串的大小写一致,如<result name="success" type="dispatcher">/Index.jsp</result>,那么方法中return "success"。如果使用继承自ActionSupport类的返回值,也要大小写一致,ActionSupport类中使用SUCCESS,则对应"success"
初学structs2,简单配置的更多相关文章
- [C#]使用 C# 代码实现拓扑排序  dotNet Core WEB程序使用 Nginx反向代理  C#里面获得应用程序的当前路径  关于Nginx设置端口号,在Asp.net 获取不到的,解决办法  .Net程序员 初学Ubuntu ,配置Nignix  夜深了,写了个JQuery的省市区三级级联效果
		[C#]使用 C# 代码实现拓扑排序 目录 0.参考资料 1.介绍 2.原理 3.实现 4.深度优先搜索实现 回到顶部 0.参考资料 尊重他人的劳动成果,贴上参考的资料地址,本文仅作学习记录之用. ... 
- 小丁带你走进git世界一-git简单配置
		小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config –global user.name BattleHeaer ... 
- 以实际的WebGIS例子探讨Nginx的简单配置
		文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ... 
- CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置
		1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB,两条命令都可以 systemctl sta ... 
- ssm简单配置
		MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架. MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获. MyBatis 只使用简单的XML 和注解来配置和映射 ... 
- 安装MariaDB和简单配置
		1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start maria ... 
- BIND的进程一:DNS简单配置与的主从配置
		DNS的简单配置和DNS的主从配置 摘要:DNS(Domain-Name Server) ,DNS的服务起到的作用就是名称解析,在网络通讯来说计算机与计算机是通过IP地址相互通信的, 当是IP地址 ... 
- 转-squid介绍及其简单配置
		本文原始出处:http://linuxme.blog.51cto.com/1850814/372960 1.Squid是什么? Squid中文权威指南:http://zyan.cc/book/squi ... 
- Linux中vim的简单配置
		本文主要分享Linux中vim的简单配置 ★配置文件的位置 在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ... 
- CCNA网络工程师学习进程(6)vlan相关协议的配置与路由器简单配置介绍
		前面已经介绍了大部分与vlan技术相关的交换机的协议的配置,更深层次的还有STP协议和以太网端口聚合技术,接着还会简单介绍一下路由器的基本应用. (1)STP(Spanning-tre ... 
随机推荐
- jQuery Mobile和Sencha Touch哪个更适合你?
			纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族 ... 
- 【MySQL】游标的具体使用详解
			测试表 level ; )); 再 insert 些数据 ;代码,初始化 drop procedure if exists useCursor // 建立 存储过程 create CREATE PRO ... 
- Silverlight 利用DataGrid行加载事件动态控制行列显示
			datagrid的绑定很好用,但有时候我们往往需要根据model内容来动态控制行或者列,该怎么办呢? 这时候,我们就需要用到行加载事件:在加载每一行数据的时候,根据数据的内容来控制相应的表格显示. 比 ... 
- linux测速软件speedtest-cli
			linux测速软件: https://github.com/sivel/speedtest-cli 以下是我在gentoo上测的 
- TortoiseGIT安装过程及问题
			1,安装Git.一路默认 2,安装TortoiseGit,一路安装完毕.重启电脑. 3,配置TortoiseGit.这是最重要一步. 配置 remote,即远程地址,用于以后pull 或 push操作 ... 
- Jenkins进阶系列之——05FTP publisher plugin插件
			说明:这个插件可以将构建的产物(例如:Jar)发布到FTP中去. 官方说明:FTP publisher plugin 安装步骤: 系统管理→管理插件→可选插件→Artifact Uploaders→F ... 
- 推荐一款超强大的基于Angularjs的自动完成(Autocomplete)标签及标签组插件–ngTagsInput
			前言 今天利用中午午休时间,给大家分享推荐一款基于Angularjs的自动完成(Autocomplete)标签及标签组插件--ngTagsInput,功能超强大的.不信,你试试就知道^_^... Au ... 
- Express使用手记:核心入门
			入门简介 Express是基于nodejs的web开发框架.优点是易上手.高性能.扩展性强. 易上手:nodejs最初就是为了开发高性能web服务器而被设计出来的,然而相对底层的API会让不少新手望而 ... 
- 远程办公《Remote》读书笔记:中国程序员在家上班月入过六万不是梦
			这不是一本新书,这是一本很值得中国程序员看的老书,所以我不是来做卖新书广告的:) 但它的确是一本好书,这本书在Amazon上3个business categories排第一.作者Jason Fried ... 
- 云计算之路-阿里云上:2014年6月12日12点IIS请求到达量突降
			今天中午12:00左右,在Windows性能监视器中突然发现SLB中的两台云服务器的IIS请求到达量(ArriveRate)突然下降,见下图: IIS日志中的情况如下: 综合以上情况,我们推测在12: ... 
