配置src/struts.xml |
<?xml version="1.0" encoding="UTF-8" ?> <!--DOCTYPE struts表示根节点为struts -//Apache Software Foundation//DTD Struts Configuration 2.0//EN一个uri http://struts.apache.org/dtds/struts-2.0.dtd编程的时候访问,有自动补全的作用--> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 包的名称自定义,可以配置多个包,但是名字必须唯一,起继承作用,例如最原始的package的name值为struts-default,之后的包都要直接或者间接的继承它; namespace命名空间:定义访问package的名字空间,也表示真实存在于WebRoot目录下的路径,该名字空间影响到url的地址.
扫描二维码关注公众号,回复:
3105381 查看本文章
例如:在result标签中,如果配置的是相对路径,就是相对namespace的路径, 其次,在访问http://localhost:8080/struts2demo/path1/path2/test.action 过程中,会先去找到namespace为/path1/path2的package 如果该package中不包含name为test的action,就到namespace为/path1的package 去寻找name为test的action,如果还没有找到,最后到根目录以及默认的namespace中寻找 如果没有,就返回404错误 可以理解为从里到外寻找 extends 值是struts-default或者继承了struts-default的packageName --> <package name="xxxx" namespace="/user" extends="struts-default"> <!-- name是url请求名,不需要加后缀(.action) name属性+namespace唯一标志一个action, class是处理url请求对应的java类,class要求包名+类名 并且该类是由公共的无参构造方法的。 缺省为ActionSupport类 method配置处理请求类的处理的方法,默认为execute: 方法要满足是公共的,返回值类型是String,无参 method和name无关--> <action name="hello" class="cn.itcast.action.HelloAction" method="execute"> <!-- result-指结果集 name:匹配请求处理方法的返回值;默认是success type:结果处理类型;默认是dispather转发 --> <!-- 其他type类型: ***chain:指action链,链接下一个action;执行actionA以后直接执行ActionB后直接执行ActionC,用得较少 地址栏是执行的第一action ***dispatcher:转发;和servlet一致。如果request中有数据要到视图显示,那么使用dispatcher ***redirect:重定向;如果是重定向到jsp页面,可以直接重定向,如果是重定向到另一个action,需注意 是否配置了action的后缀名。如果要求有后缀名,那么重定向的action一定要加上后缀名 redirect的路径一定不能在WEB-INF路径下,因为redirect是相当于用户直接访问了路径,而用户不能访问WEB-INF目录下的文件, 只有程序内部转发的时候才能转发到WEB-INF下的JSP。 ***redirectAction:重定向导另一个action;不用加action的后缀名,会将前一个action的后缀名自动加上 ***stream:以流的形式显示---文件下载 > <result name="success">/success.jsp</result> </action> </package> </struts>
<!-- 使用通配符优化步骤 --> * 可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用 \.
<!-- 什么情况不配置class? 即处理的aciton -->
总配置文件可以引入其他配置文件
<!-- 一、全局配置 --> 指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker 、velocity的输出 默认情况下,如用户请求路径不带后缀或者后缀以.action结尾,请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求。 这个属性在:struts2-core-2.1.8.1.jar\org\apache\struts2\ default.properties struts.xml修改后是否自动重新加载这个配置文件(开发环境下最好开启) actionName!action中的方法 http://localhost:8080/struts02/user!login
|
struts2---src/struts.xml配置详解
猜你喜欢
转载自blog.csdn.net/weixin_40775755/article/details/82501468
今日推荐
周排行