`
awfrun
  • 浏览: 82475 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts2 一些细微技术

阅读更多

1.DefaultAction,一般用在请求不存在时,默认跳转到defaultAction,例如主页

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    
    <package name="default" namespace="/" extends="struts-default">
    	<default-action-ref name="index"></default-action-ref>
    	<action name="index">
    		<result>/default.jsp</result>
    	</action>
    </package>
</struts>

 

2.模块包含

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <include file="login.xml" />
</struts>

 

3.通配符配置  {1}{2}指第几个*, 使用这种方法时约定要做得很好,记住一句话,约定优于配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="actions" extends="struts-default" namespace="/actions">
        <action name="Student*" class="com.awf.StudentAction" method="{1}">
            <result>/Student{1}_success.jsp</result>
        </action>
        
        <action name="*_*" class="com.awf.action.{1}Action" method="{2}">
            <result>/{1}_{2}_success.jsp</result>
         </action>
    </package>
</struts>

 

4.namespace ,下面列出了三种方式,第一种是"/one"表示访问该package下的action前面加"/one/"例: /one/index

   第二种:"",表示只要最后面是/xx,它就会去访问xx那个action,不过它的优先权最低,如里前面是这样的/one/index,那  么它会去访问刚才说的第一种,如果是这样的/abc/index  刚好没有abc这个namepackage,那么才会去访问第二种.

第三种:"/",不用多说,只要明白它们的优先级就可以了.

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="front" extends="struts-default" namespace="/one">
        <action name="index">
            <result>/Namespace.jsp</result>
        </action>
    </package>
   
     <package name="main" extends="struts-default" namespace="">
        <action name="index">
            <result>/Namespace.jsp</result>
        </action>
    </package>
<package name="default" namespace="/" extends="struts-default">
   </package>
</struts>

 

 

 

 

5.global-results 全局result,不同package访问可以使用extends

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="user" namespace="/user" extends="struts-default">
    	
    	
    	<global-results>
    		<result name="mainpage">/main.jsp</result>
    	</global-results>
    	
    	<action name="index">
    		<result>/index.jsp</result>
    	</action>
    	
	    <action name="user" class="com.awf.user.action.UserAction">
	    	<result>/user_success.jsp</result>
	    	<result name="error">/user_error.jsp</result>
	    </action>	    
    </package>
    
    <package name="admin" namespace="/admin" extends="user">
    	<action name="admin" class="com.awf.user.action.AdminAction">
    		<result>/admin.jsp</result>
    	</action>
    </package>
</struts>

 

 

 

 

 6.动态结果集,${r}是ognl对xml的操作 r在action中有get/set方法,这个值实际上是ValueStack,Value Stack Contents里存放的

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="user" namespace="/user" extends="struts-default">
    	
	    <action name="user" class="com.awf.struts2.user.action.UserAction">
	    	<result>${r}</result>
	    </action>	    
    </package>
    	
</struts>

 

 

 

7.带参结果集,由于result type=redirect 所以在jsp页面无法用Value Stack Contents,但是可以用Stack Context里的parameters,例:<s:property value="#parameters.t"/> ;Value Stack Contents访问不用#,Stack Context访问要用#key,它们各自包含量的变量有哪些可以在jsp页面使用<s:debug></s:debug>标签

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="user" namespace="/user" extends="struts-default">
    	
	    <action name="user" class="com.awf.struts2.user.action.UserAction">
	    	<result type="redirect">/user_success.jsp?t=${type}</result>
	    </action>	    
    </package>
    	
</struts>

 

分享到:
评论

相关推荐

    struts2核心技术整理

    总结,Struts2作为Java web开发的主流框架之一,其核心技术包括Action、Interceptor、Value Stack、OGNL等,通过这些组件和机制,开发者能够高效地构建MVC应用,实现业务逻辑与表现层的分离,同时具备良好的扩展性...

    struts2技术内幕+struts2权威指南

    然后厘清了Web开发中极易混淆的一些重要概念,以及Struts2的核心技术、宏观视图、微观元素、配置元素等,提纲挈领地对Struts2进行了多角度的讲解。核心技术篇首先分析了Struts2中多种具有代表性的设计模式,然后对...

    struts2 技术内幕——深入解析struts2架构设计

    然后厘清了Web开发中极易混淆的一些重要概念,以及Struts2的核心技术、宏观视图、微观元素、配置元素等,提纲挈领地对Struts2进行了多角度的讲解。核心技术篇首先分析了Struts2中多种具有代表性的设计模式,然后对...

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理.pdf

    《Struts2技术内幕:深入解析Struts2架构设计与实现原理》由国内极为资深的Struts2技术专家(网名:downpour)亲自执笔,iteye兼CSDN产品总监范凯(网名:robbin)以及51CTO等技术社区鼎力推荐。《Struts2技术内幕:深入...

    Struts2技术内幕.pdf

    然后厘清了Web开发中极易混淆的一些重要概念,以及Struts2的核心技术、宏观视图、微观元素、配置元素等,提纲挈领地对Struts2进行了多角度的讲解。核心技术篇首先分析了Struts2中多种具有代表性的设计模式,然后对...

    Struts2 技术内幕-深入解析Struts2架构设计与实现原理

    然后厘清了Web开发中极易混淆的一些重要概念,以及Struts2的核心技术、宏观视图、微观元素、配置元素等,提纲挈领地对Struts2进行了多角度的讲解。核心技术篇首先分析了Struts2中多种具有代表性的设计模式,然后对...

    struts2项目开发

    下面将从 Struts2 项目开发的角度,详细介绍 Struts2 框架的应用、开发流程、技术架构、实践经验等方面的知识点。 项目需求分析 在 Struts2 项目开发中,需求分析是非常重要的一步。通过对项目的需求分析,可以...

    struts2技术内幕

    struts2技术内幕

    Struts2技术内幕 权威指南

    《Struts2技术内幕 权威指南》是一本深入探讨Struts2框架的书籍,涵盖了该框架的核心概念、设计模式以及最佳实践。书中可能包含了以下几个关键知识点: 1. **Struts2架构**:Struts2的核心架构基于拦截器...

    Struts2+技术内幕——深入解析Struts2架构设计与实现原理

    本书《Struts2技术内幕——深入解析Struts2架构设计与实现原理》结合提供的《struts2基础.chm》资料,为我们提供了深入理解Struts2内部机制的机会。 首先,Struts2的核心在于它的拦截器(Interceptor)机制。拦截器...

    Struts2漏洞检查工具Struts2.2019.V2.3

    然而,随着时间的推移,Struts2在安全方面暴露出了一些重要的漏洞,这给使用该框架的系统带来了潜在的安全风险。"Struts2漏洞检查工具Struts2.2019.V2.3"是一个专门针对这些漏洞进行检测的工具,旨在帮助开发者和...

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理

    根据提供的文件内容,内容中没有直接涉及Struts2的具体技术细节,反而包含了关于Java程序员薪资、职业规划、学习资源的信息。然而,基于要求,我将重点放在解析Struts2架构设计与实现原理上。 Struts2是一个基于MVC...

    struts2jar包

    6. **其他依赖的jar包**:Struts2运行还需要一些其他的库,如freemarker或velocity用于模板引擎,javassist用于动态类生成,log4j或slf4j用于日志记录等。 引入Struts2的jar包有多种方式: - **Eclipse/IDEA等集成...

    Struts2 技术内幕——深入解析Struts2架构设计.pdf.zip

    "Struts2 技术内幕——深入解析Struts2架构设计"这本书深入探讨了Struts2的核心机制和设计理念,帮助开发者更好地理解和应用这个框架。 Struts2的核心组件包括Action、Interceptor、Result和Configuration。Action...

    Struts2漏洞测试

    Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...

    struts1和struts2的区别

    Struts2还支持多种视图技术,如FreeMarker、Velocity等。 #### 数据绑定 - **Struts1**: 使用Commons-BeanUtils进行数据绑定,每一个表单字段都需要单独处理。 - **Struts2**: 使用OGNL进行数据绑定,支持更高级...

    Struts2视频教程

    掌握了Struts2的核心技术和实践经验后,开发者可以更加高效地构建高质量的Web应用。无论是初学者还是有一定经验的开发者,都能从中受益匪浅。希望本教程能帮助大家更好地理解和运用Struts2,为自己的项目带来更多的...

    struts2-core.jar

    struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...

Global site tag (gtag.js) - Google Analytics