Struts2文件配置介绍
Struts2文件配置介绍
structs.xml文件配置
标签
package标签
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 配置post请求以及repsone的编码格式 -->
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<!-- 配置请求路径的扩展名 -->
<constant name="struts.action.extension" value="action,,"></constant>
<!-- 开启热部署 -->
<constant name="struts.devMode" value="true"></constant>
<package name="index" namespace="/" extends="struts-default">
<action name="" class="com.forward.test.web.action.UserAction" method="toLogin">
<result name="toLogin">/WEB-INF/view/login.jsp</result>
</action>
</package>
<include file="com/forward/test/web/action/struts.xml"></include>
</struts>
配置web应用的不同模块,一般在一个功能模块下配置一个package,在当前的package下配置这个模块的多个action
name属性给不同的模块起不同的名字,随便写,不重复即可namespace属性给不同的模块设置访问的根路径,可以配置成/extends属性表示继承,struts-default是struts2给我们提供的一个package
action标签
action标签表示配置一个请求
name属性表示请求路径的后缀,一般表示功能模块中的具体请求,name的名字就代
表访问路径的名称class属性表示当有请求过来的时候调用的是哪个类中的方法,配置全类名method表示class 请求调用的是class 中的哪个方法,指的是具体的方法名
result标签
result 结果配置,用于设置不同的方法返回值,可以配置不同的返回值对应不同的视图
name属性表示结果处理名称,与action中的返回值对应type属性表示指定哪个result 类来处理显示的页面,默认是内部转发,可以
在struts-default 的文件中进行查看标签体表示相对路径,相对于web应用开始
常量配置
默认的常量配置在structs核心包中
修改常量配置方式及加载顺序
对于常量的配置, 默认加载的是structs核心包中的default.properties,如果通过以下3种进行配置,就会按照默认–>1–>2–>3 的顺序加载,后面设置的常量会覆盖之前设置的常量
- 在structs.xml文件中,在structs的根标签下,书写constant 标签进行配置,在项目中主要使用这种方式
- 在src下创建structs.properties文件,将内容复制到此文件进行修改
- 在web.xml文件中,配置context-param



常用常量设置
- struts.i18n.encoding=UTF-8 用于配置接收参数和向外输出中文的编码格式一般设置为UTF-8
- struts.action.extension=action, 指定访问action的路径的后缀名,使用, 表示可以有两个后缀名,可以是action也可以是没有后缀名
- struts.devMode = false 指定structs是否是以开发模式运行,能够支持修改配置文件后进行热部署,所以我们可以将其设置为true
动态方法调用
如果一个业务模块有多个方法,我们可以使用动态方法调用省略action的配置,设置动态方法调用有两种方法
- 方法一
- 开启动态方法调用
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> - 配置action的时候不写method
- 在访问的时候输入网址
http://localhost:8080/webapp/namespace/name!method
- 开启动态方法调用
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<package name="helloWorld" namespace="/User" extends="struts-default">
<action name="d_" class="com.zhiyou100.struts.web.action.demo3.Demo3Action" >
<result name="success">/hello World.jsp</result>
</action>
</package>
- 方法二 通配符方式
- 关闭动态方法调用
- 对于方法名可以使用一个* 通配符,在后面的class和method可以使用{索引} 来读取前面的内容
- 访问路径localhost:8080/webapp/namespace/class_method
<package name="demo3" namespace="/User" extends="struts-default">
<action name="*_*" class="com.zhiyou100.struts.web.action.demo3.{1}" method="{2}">
<result name="success">/helloWorld.jsp</result>
</action>
</package>
structs2中的默认配置
method的默认值executeresult的默认值是successresult的type的默认值是dispatcherclass的默认值是ActionSupport其中有execute方法返回值是success- 配置
package下的默认的action,当访问当前包下,如果找不到指定action,就会自动寻找默认的action
<package name="default" namespace="/user" extends="struts-default">
<default-action-ref name="demoAction"></default-action-ref>
<action name="demoAction" class="com.forward.test.web.action.UserAction">
<result>/WEB-INF/view/404.jsp</result>
</action>
</package>
结果跳转的方式
结果的跳转方式可以通过result的type属性进行设置
转发
转发到指定页面
对于
type属性,默认是dispatcher,就是转发到响应界面,可以不用进行配置
转发到指定action
对于
type属性需要设置为chain,并在其下方配置<param>标签
<result name="error" type="chain">
<param name="namespace">/</param>
<param name="actionName"></param>
</result>
重定向
重定向到指定界面
对于type属性,设置为
redirect,就是重定向到界面,如果需要进行重定向就必须进行此处的设置
<result name="error" type="redirectAction">
<param name="namespace">/</param>
<param name="actionName"></param>
</result>
Struts2文件配置介绍的更多相关文章
- Struts2零配置介绍(约定访问)
从struts2.1开始,struts2 引入了Convention插件来支持零配置,使用约定无需struts.xml或者Annotation配置 需要 如下四个JAR包 插件会自动搜索如下类 act ...
- Struts2文件配置 登陆页面
Struts 版本号 struts-2.3.16.3 web.xml 配置 <?xml version=”1.0″ encoding=”UTF-8″?> <web-app versi ...
- hosts文件配置参数介绍
hosts文件配置参数介绍 1, ansible_ssh_host : 指定主机别名对应的真实 IP,如:100 ansible_ssh_host=192.168.1.100,随后连接该主机无须指定完 ...
- java:struts2.3框架1(struts2快速配置,各文件之间的关系,基础代码简化版,XML中的通配符)
1.struts2快速配置: A.到http://struts.apache.org下载struts2开发包struts-2.3.32-all.zip B.新建web项目并添加struts2依赖的ja ...
- Android多版本flavor配置之资源文件和清单文件合并介绍
知识背景 Android studio升级到3.0之后,gradle增加了多维度管理配置,便于同一个项目中创建应用的不同版本,分别管理依赖项并签署配置.创建产品风味与创建构建类型类似:只需将它们添加到 ...
- Struts2 XML配置详解
struts官网下载地址:http://struts.apache.org/ 1. 深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1. 包配置: S ...
- Struts2文件上传功能浅析
本文将以图片上传为例,解析Struts2文件上传的主要过程实例的功能:1.在jsp页面选择要上传的图片, 2.为待上传的图片取名,以便于查找 ...
- struts2相关简单介绍
一 Struts2环境配置 1.准备jar包,核心jar包有: 2.创建Struts2项目并导入jar包 3.在Struts2项目中src下创建Struts.xml配置文件 4.在Web.xml文件中 ...
- Spring框架入门之基于xml文件配置bean详解
关于Spring中基于xml文件配置bean的详细总结(spring 4.1.0) 一.Spring中的依赖注入方式介绍 依赖注入有三种方式 属性注入 构造方法注入 工厂方法注入(很少使用,不推荐,本 ...
- 深入 Struts2 的配置 - 处理多个请求-处理请求结果-模型驱动-异常机制
转:http://www.java3z.com/cwbwebhome/article/article2/2938.html?id=1631 本部分主要介绍struts.xml的常用配置. 1.1. ...
随机推荐
- 如何使用虚拟机下载和安装Centos
首先先下载虚拟机进行安装我这里使用的是 VMware Workstation Player 当前版本为16.这个是免费使用的可以不需要许可证就能长期使用了 官网VMware Workstation P ...
- python opencv制作隐藏图片
前言 隐藏图片就是在白色背景和黑色背景显示出不同的图片,之前qq可以显示,现在好像也不行了,原因就是原来的qq,在发出来默认是白色背景,而点开后是黑色背景.但是这个原理还是挺有意思的,所以简单的研究了 ...
- table 动态隐藏tr行
table: <table style="width:100%" class="table01" cellspacing="1" ce ...
- ArcObjects SDK开发 005 ArcObjects SDK中的插件式架构
1.什么是插件式架构 插件式架构设计中主要包括三个重要部分,宿主.插件协议以及插件实现.宿主是指使用插件的部分,该模块可以是一个类,也可以是多个接口和类组成的模块.插件协议是指宿主与插件之间的协议,宿 ...
- springcloudgateway学习
API网关 大型项目开发过程中,往往都是由各个不同的微服务组成的,服务可能分布在不同地区不同机房,那用户如何知道访问某服务的时候该服务的实际地址呢,这时候就需要API网关了 API 网关就像服务的门面 ...
- 【Java EE】Day09 JavaScript基础、ECMAScript语法、Java对象
一.简介 1.概念 客户端脚本语言 脚本语言:无需编译,直接被解析执行 运行在:客户端浏览器,每个浏览器都有解析引擎 功能: 用户与页面交互 控制html元素 使页面产生动态效果 2.发展史 1992 ...
- 【离线数仓CDH版本】即席查询工具(Presto、Druid、Kylin)、CDH数仓、Impala查询
1.即席查询 一.Presto 大数据量.秒级.多数据源的查询引擎[支持各种数据源work的内存级查询] 由coordinator和多个work构成,work对应不同数据源Catalog 特点:基于内 ...
- [py]残留python.exe导致anaconda python路径无法识别
刚才重下anaconda真是给我整没脾气了 路径啥的都加好了,cmd输入python还是没有,给我跳应用商店去了- 重启也没用 经过一番搜索,找到解决办法: cmd输入"where pyth ...
- Elasticsearch模糊查询、多字段in查询、时间范围查询,DSL和java API两种方式
Elasticsearch模糊查询.多字段in查询.时间范围查询,DSL和java API两种方式 项目场景: Elasticsearch模糊查询某字段.多字段in查询.时间范围查询,通过DSL和ja ...
- PTA散列表平方探测法解决冲突
PTA散列表平方探测法解决冲突 核心问题 当所有的位置都被填上了,且不能插入关键词,要进入死循环了怎么办? 题目 本题的任务很简单:将给定的无重复正整数序列插入一个散列表,输出每个输入的数字在 ...
