• mzy,struts学习(二):struts.xml的配置


    <?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>
    	<!-- 动态方法调用打开! -->
        <constant name="struts.enable.DynamicMethodInvocation" value="true" />
        <!-- 
        	开发者模式: 
        	开发者模式打开之后
        	include中:
        			struts.i18n.reload = true
        			struts.configuration.xml.reload = true
        	1.打开之后,就是自动加载i18n;
        	2.打开之后,就是自动加载配置文件;
        	3.更多的错误提示;
        	
        -->
        <constant name="struts.devMode" value="true" />
        <constant name="struts.i18n.encoding" value="UTF-8"/>
        <!-- struts.action.extension=action,, aciotn或者空;一般老的java程序员喜欢把后缀改成do -->
        <!-- struts.i18n.reload = true自动加载文本国际文件! -->
    	<!-- 
    		struts.ui.theme=xhtml
        	struts默认的标签,给标签默认加样式!方便快速开发!
        	
        	如果自己开发前端的话,就可以设置为simple或者null!
    	-->
    	<!-- 
    		再讲讲package的作用:
    			package的作用是区分目录层级;不同的模块让package的虚拟目录层级不同!
    			/user/login:之类的配置namespace;
    			package声明上,不仅可以填extends,后面还可以填abstract只有两个属性:true和false
    			abstract之后,其中不能有具体的action实现,只能被其他的的package继承去实现功能!
    	-->
    	<package name="mzyPackage" namespace="/" extends="struts-default">
    		<!-- 
    			Demo01Action_add_success_index 
    			此案例测试了动态方法调用的基础测试!简单案例使用!
    			其中name:是我们为action加上的一个标识,在访问时输入namespace+name值,就可以找到action了
    			class:action的完整类名。
    			method:处理的方法。
    		-->
    		<action name="*_*_*_*" class="com.mzy.servlet.{1}" method="{2}">
    			<result name="{3}">/WEB-INF/content/{4}.jsp</result>
    			<!-- 
    				result中的name:是通过method返回的一个标识符,如果在action中不配置method
    				默认就调用execute方法。返回值默认也是success和error!
    			 -->
    			<!-- 
    				其中的type是只转到jsp的方式!
    				dispatcher:转发;
    				redirect:重定向; 
    				redirectAction:重定向到另一个action;
    				stream:以流的形式放松到浏览器,用于文件下载;
    				chain:链,在一次请求中,从一个action到另一个action;
    			-->
    			<!-- <result name="success" type="dispatcher"></result> -->
    			
    			<!-- <result name="update">/update.jsp</result> -->
    		</action>
    	</package>
    	<!-- 
    		struts中的include配置:导入引用外部的配置!包含其他的struts.xml配置文件
    		协同开发,模块化开发使用。 
    	-->
    	<include file="struts-namespace.xml" />
    	<include file="struts-servlet.xml" />
    </struts>	
    	
    
    <?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>
    	
        <constant name="struts.enable.DynamicMethodInvocation" value="true" />
        <constant name="struts.devMode" value="true" />
    	<!-- 
    		发现只要我是/a开头,后面的目录层级不管是几层/a/b/c...它都能找到我的Demo01Action,
    		总结它总是从第一层目录开始找的,只有第一层目录写对了,它就会一层一层往下找!这个是继承struts-default的原因!
    		先找/a/b/c
    		找不到:/a/b
    		找不到:/a
    		找不到:/
    		找不到:默认里面找action,谁是默认?没有写namespace的package就是默认!(namespace也不是必填的属性)
    		例如:
    			<package name="ns1" extends="struts-default">
    			这样就是默认的namespace
    		
    		但是如果我写成了/b或者其他的开头,就会出错,找不到了!
    		
    		下面的Demo02Ation同上!
    		
    		补充action中的class属性也可以不配置,不配置的话,默认走默认的action(struts内部默认的action)返回默认success!
    	 -->
    	<package name="ns1" namespace="/a" extends="struts-default">
    		<action name="Demo01Action" class="com.mzy.action.Demo01Action">
    			<result>/WEB-INF/namespace/demo01.jsp</result>
    		</action>
    	</package>
    	<package name="ns2" namespace="/b" extends="struts-default">
    		<action name="Demo02Action" class="com.mzy.action.Demo02Action">
    			<result>/WEB-INF/namespace/demo02.jsp</result>
    		</action>
    	</package>
    </struts>	
    	
    



  • 相关阅读:
    CompareUtil
    linux awk学习笔记
    linux用grep查找包含两个关键字的命令
    mysql 使用set names 解决乱码问题
    对私有静态方法进行单测
    使用JUnit测试预期异常
    Tortoise svn 冲突解决主要办法
    tortoise svn冲突解决
    word-break与word-wrap
    移动端适配
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053403.html
Copyright © 2020-2023  润新知