用过struts2的朋友都知道,struts2其实是webwork+Apache Shale的一个结合,最初的名字是struts action 2,和他的两个父类相比,struts2 是通过接口代理实现的(struts和webwork2 是基于servlet),而在struts里虽然很多都是用的jsp作为展示,但是freemarker已经被大量的使用了(至少我接触到的很多公司都开始使用freemarker作为现实的首选代替jsp),所以在下整理了一点freemarker经常会用到的取值方法以供参考。
${Request["a"]}
${RequestParameters["a"]}
${Session ["a"]}
${Application ["a"]}
${JspTaglibs ["a"]}
注意RequestParameters等内部对象时常不能获得所以要:
${RequestParameters?default({})["_errors"]?default("params")}
${Request["request"]?default("request")}
${Session["session"]?default("session")}
${Application["ctx"]?default("ctx")}
${RequestParameters?default({})?keys?size}
${Request?keys?first}
Freemarker可以直接取pageContext,requestAttribute,session,application中的数据,就是不能取requestParameter;
然后,里面还有一个和webwork出自opensymphony的是SiteMesh(就是我们常说的页面装饰器),首先是在web.xml里面加入
<!-- siteMesh start -->
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>
com.opensymphony.module.sitemesh.filter.PageFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- siteMesh end -->
然后是在web-inf下面加入decorators.xml,当然了,由于在装饰页面的时候会用到显示标签,最好吧sitemesh-decorator.tld和sitemesh-page.tld一起放入。而在decorators.xml里面:
<decorators defaultdir="/">
<!-- 排除页面 -->
<excludes>
<pattern>/index.jsp</pattern>
<pattern>/alipay/toquery*</pattern>
</excludes>
<!-- 制定main容器 -->
<decorator name="main_sitemesh" page="/sitemesh/main.jsp">
<pattern>/*</pattern>
<pattern>/pages/center/message/*</pattern>
<pattern>/usercenter/message/*</pattern>
<pattern>/usercenter/readuser*</pattern>
<pattern>/usercenter/account/*</pattern>
<pattern>/usercenter/membercenter*</pattern>
<pattern>/usercenter/searchuser*</pattern>
</decorator>
<decorator name="joblist_sitemesh" page="/sitemesh/joblist.jsp">
<pattern>/pages/joblist/*</pattern>
<pattern>/joblist/*</pattern>
</decorator>
<!--装饰用的统一界面-->
<decorator name="pagehead" page="/sitemesh/head.jsp"/>
<decorator name="pagefoot" page="/sitemesh/foot.jsp"/>
<decorator name="jobsearch" page="/sitemesh/jobserach.jsp"/>
<decorator name="joblist_left" page="/sitemesh/joblist_model_left.jsp"/>
<decorator name="joblist_roll" page="/sitemesh/joblist_model_roll.jsp"/>
<decorator name="usercenter_left" page="/sitemesh/usercenter_left.jsp"/>
</decorators>
而在页面里会用到
<%@ taglib uri="/WEB-INF/sitemesh-decorator.tld" prefix="decorator" %>
<%@ taglib uri="/WEB-INF/sitemesh-page.tld" prefix="page" %>
其中page是最关键的部分,因为他是控制页面的相关显示,而decorator主要是用于显示默认和过滤页面自带的信息。
当然了,在配置ssh的时候我遇到一个很弱智的问题,这个问题主要是我自己的原因,和struts一样struts2 也有个相关的在spring的xml里面会涉及
<bean id="demoAction" class="com.aea.demo.web.DemoControlAction" scope="request" destroy-method="destroyDemoControlAction"/>
而在struts.xml里面会使用<action name="togo" class="demoAction" method="togo">这样就可以使用传统的依赖注入了。
当然了struts2 最吸引人的地方还是不断有新的东西加入,比如说注释编程,最开始的时候及struts2.0.11是用的codebehind,说实话,没有感觉到他给我带来的方便,相反,我倒觉得xml的效率比他高,因为他要在类文件里面写入相应的@注释,等于说没有减少工作量,反而增加了维护的工作量,但是现在struts2.1已经完全摆脱了那种模式,更加你文件下面的路径来自动生成相应的action,不过也有个难点就是action跳action不如xml那么方便
分享到:
相关推荐
Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...
Struts2是一个强大的Java EE应用程序框架,主要用于构建企业级的Web应用。它的核心是MVC(Model-View-Controller)设计模式,可以帮助开发者组织代码,提高开发效率,并且提供了丰富的特性来支持表单验证、国际化、...
Struts2是一款非常流行的Java Web框架,用于构建企业级应用。然而,随着时间的推移,Struts2在安全方面暴露出了一些重要的漏洞,这给使用该框架的系统带来了潜在的安全风险。"Struts2漏洞检查工具Struts2.2019.V2.3...
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,...
struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...
### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...
Struts2 项目开发 Struts2 是一个基于 Java Web 的框架,广泛应用于 Web 应用程序的开发。下面将从 Struts2 项目开发的角度,详细介绍 Struts2 框架的应用、开发流程、技术架构、实践经验等方面的知识点。 项目...
### Struts2核心知识点解析 #### 一、Struts2框架概述 - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,...
这个"留言板留言板struts2"项目,显然是一个基于Struts2实现的简单留言板系统,旨在展示Struts2的核心功能和开发流程。下面将详细介绍Struts2框架以及在该项目中可能涉及的关键知识点。 1. **Struts2框架概述**:...
Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,旨在简化创建用户交互式、数据驱动的web应用的过程。这个“Struts2接口文档”是开发者的重要参考资料,提供了关于...
Struts2是一个强大的Java web开发框架,用于构建可维护、可扩展且结构良好的应用程序。它在MVC(Model-View-Controller)设计模式的基础上提供了一种实现方式,使得开发者能够更方便地处理用户请求,控制业务逻辑,...
该工具的打开路径为:\Struts2VulsTools-2.3.20190927\Test\bin\Release\Text.exe 2019-09-25: 优化部分EXP在部分情况下被WAF拦截的问题,提高检测成功率,优化自定义上传路径exp,文件所在目录不存在时自动创建...
struts2的概述struts2下的HelloWord struts2基础 struts2做好准备 struts2的标志 struts2的Action讲解 struts2中的国际化 struts2转化器 struts2实现表单数据校验 struts2的基石-拦截器 struts2中实现IOC struts2中...
Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用程序。它在Java社区中广泛使用,因其灵活性、可扩展性和丰富的插件库而受到赞誉。Struts2的核心是Action类,它处理HTTP...
Struts2是一个非常著名的Java Web开发框架,由Apache软件基金会维护。它基于MVC(Model-View-Controller)设计模式,极大地简化了构建基于Java EE的Web应用程序的过程。本资源包含"struts2所有jar包程序文件",是...
Struts2-showcase是一个用于演示和学习Apache Struts2框架功能的开源项目。这个压缩包“struts2-showcase.rar”包含了完整的源代码,旨在帮助开发者深入理解Struts2框架的工作原理及其各种特性。以下是对Struts2和...
struts2环境搭建+struts2 新闻发布系统+struts2 留言板 struts2环境搭建:基础框架搭建,简单易上手,适合新手,比你看书强多了,实践源于理论而高于理论,贵在实践 朋友。 struts2 新闻发布系统:struts2+jsp 功能不...
"struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必不可少的组件。 "Struts2"可能是项目实例代码,包括Action类、视图...
《Struts2技术内幕:深入解析Struts2架构设计与实现原理》以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2...
Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用程序。由Apache软件基金会维护,它是Struts1的升级版,提供了更先进的特性和更好的性能。尚硅谷_佟刚_Struts2的讲解课件...