一、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,简单配置的更多相关文章

  1. [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果

    [C#]使用 C# 代码实现拓扑排序   目录 0.参考资料 1.介绍 2.原理 3.实现 4.深度优先搜索实现 回到顶部 0.参考资料 尊重他人的劳动成果,贴上参考的资料地址,本文仅作学习记录之用. ...

  2. 小丁带你走进git世界一-git简单配置

    小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config  –global user.name BattleHeaer ...

  3. 以实际的WebGIS例子探讨Nginx的简单配置

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...

  4. CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置

    1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB,两条命令都可以 systemctl sta ...

  5. ssm简单配置

    MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架. MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获. MyBatis 只使用简单的XML 和注解来配置和映射 ...

  6. 安装MariaDB和简单配置

    1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start maria ...

  7. BIND的进程一:DNS简单配置与的主从配置

    DNS的简单配置和DNS的主从配置   摘要:DNS(Domain-Name Server) ,DNS的服务起到的作用就是名称解析,在网络通讯来说计算机与计算机是通过IP地址相互通信的, 当是IP地址 ...

  8. 转-squid介绍及其简单配置

    本文原始出处:http://linuxme.blog.51cto.com/1850814/372960 1.Squid是什么? Squid中文权威指南:http://zyan.cc/book/squi ...

  9. Linux中vim的简单配置

    本文主要分享Linux中vim的简单配置 ★配置文件的位置     在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...

  10. CCNA网络工程师学习进程(6)vlan相关协议的配置与路由器简单配置介绍

        前面已经介绍了大部分与vlan技术相关的交换机的协议的配置,更深层次的还有STP协议和以太网端口聚合技术,接着还会简单介绍一下路由器的基本应用.     (1)STP(Spanning-tre ...

随机推荐

  1. MySQL基础 - 注意事项

    AND比OR优先级高,故在同时使用AND和OR进行查找时记得加上小括号,当同时存在多个条件时统一加上括号是个好习惯. NULL不参与搜索,即使使用LIKE '%'也匹配不到值为NULL的记录. LIK ...

  2. 在WebApi中实现Cors访问

    Cors是个比较热的技术,这在蒋金楠的博客里也有体现,Cors简单来说就是“跨域资源访问”的意思,这种访问我们指的是Ajax实现的异步访问,形象点说就是,一个A网站公开一些接口方法,对于B网站和C网站 ...

  3. [CareerCup] 6.1 Find Heavy Bottle 寻找重瓶子

    6.1 You have 20 bottles of pills. 19 bottles have 1.0 gram pills, but one has pills of weight 1.1 gr ...

  4. 利用Gulp优化部署Web项目[长文慎入]

    Gulp Gulp是一款项目自动化的构建工具,与Grunt一样可以通过创建任务(Task)来帮助我们自动完成一些工作流的内容.当然,今天我们的内容并不是讨论这二者的区别,仅仅是介绍介绍如何利用Gulp ...

  5. 用scheme语言实现SPFA算法(单源最短路)

    最近自己陷入了很长时间的学习和思考之中,突然发现好久没有更新博文了,于是便想更新一篇. 这篇文章是我之前程序设计语言课作业中一段代码,用scheme语言实现单源最段路算法.当时的我,花了一整天时间,学 ...

  6. 记录我学github的路程(二)

    2015-12-09 更新 1,现在,本地有了一个库,你可能会想到GitHub创建一个库,并且关联起来.这样,远程的库既可以当作备份,又可以让其他人通过该仓库来协作. 2,步骤: (1)登录GitHu ...

  7. Bootstrap3.0学习第二十轮(JavaScript插件——滚动监听)

    详情请查看 http://aehyok.com/Blog/Detail/26.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:h ...

  8. linux 安装webbench

    webbench :1.5  http://soft.vpser.net/test/webbench/webbench-1.5.tar.gz从官网下载webbench-1.5.tar.gz1.解压 t ...

  9. 每天一个linux命令(18):find 命令概览

    Linux 下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所 以它的选项也很多,其中大部分选项都值得我们 ...

  10. 大数相乘算法C++版

    #include <iostream> #include <cstring> using namespace std; #define null 0 #define MAXN ...