java struct2教程框架 配置文件问题?

您现在的位置:&&>>&&>>&&>>&&>>&正文
Spring整合Struts2中拦截链与注解的使用
  在Spring,Hibernate,Struts2三大框架中,居于核心地位的是Spring框架,相对于其他两个框架来讲,Spring扮演一个管理者的角色,它通过注入的方式将struts2以及hibernate中的相关配置纳入自己的管理范围达到简化struts.xml,hibernate.cfg.xml配置文件以及对Bean实行集中管理的目的。这种管理方式其实与我们经常用到的接口方式十分的相似,他们同样是先给出抽象,将具体的实现向后延伸,以达到可灵活配置的目的。在本文中主要介绍spring与struts整合使用中的三个比较常用的方面,分别是spring与struts2集成环境的搭建,拦截连的使用和注解方式实现注入的介绍。
  一、spring与struts2集成环境的搭建
  (1)引入jar包
  a.引入struts2(struts-2.2.3)相关jar包
  1.mons-fileupload-1.2.2.jar
  2.mons-io-2.0.1.jar
  3.mons-lang-2.5.jar
  4.freemarker-2.3.16.jar
  5.javassist-3.11.0.GA.jar
  6.ognl-3.0.1.jar
  7.struts2-core-2.2.3.jar
  8.struts2-spring-plugin-2.2.3.jar
  9.xwork-core-2.2.3.jar
  b.引入Spring(spring-framework-2.5.6)相关jar包
  1.aspectjrt.jar
  2.aspectjweaver.jar
  3.cglib-nodep-2.1_3.jar
  4.mon-annotations.jar
  5.mons-dbcp.jar
  6.mons-logging-1.1.1.jar
  7.mons-pool.jar
  8.spring.jar
  (2)配置web.xml文件。这里需要注意的事情是spring的配置文件application.xml文件如果不做相应的路径配置,tomcat会默认在WEB-INF下进行加载,但是一般情况我们会将所有的配置文件放到一个统一的文件夹中进行管理,所以以一下web.xml配置为例,我们将所有的xml配置文件放在了src下的config文件夹中,所以配置文件中才出现了上下文配置标签(&param-name&contextConfigLocation&/param-name&项)以及&param-value&struts-default.xml,struts-plugin.xml,config/struts.xml&/param-value&项,这些都是为了制定配置文件的加载路径:
  [html]
  &?xml version="1.0" encoding="UTF-8"?&
  &web-app xmlns:xsi=".w3.org/2001/XMLSchema-instance" xmlns="java.sun./xml/ns/javaee" xsi:schemaLocation="java.sun./xml/ns/javaee java.sun./xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"&
  &display-name&InterceptorTest&/display-name&
  &context-param&
  &param-name&contextConfigLocation&/param-name&
  &param-value&classpath:config/applicationContext-*.xml&/param-value&
  &/context-param&
  &listener&
  &listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class&
  &/listener&
  &filter&
  &filter-name&struts2&/filter-name&
  &filter-class&org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&/filter-class&
  &init-param&
  &param-name&config&/param-name&
  &param-value&struts-default.xml,struts-plugin.xml,config/struts.xml&/param-value&
  &/init-param&
  &/filter&
  &filter-mapping&
  &filter-name&struts2&/filter-name&
  &url-pattern&/*&/url-pattern&
  &/filter-mapping&
  &/web-app&
  二、拦截链的使用。拦截链使用中所要注意的问题是无论是单独使用拦截器还是使用拦截链,一定要在拦截器(或拦截链)的后面显示的调用默认拦截器(或拦截链)。以使用拦截链为例struts.xml文件中的内容为:
  [html]
  &?xml version="1.0" encoding="UTF-8" ?&
  &!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "struts.apache.org/dtds/struts-2.0.dtd"&
  &struts&
  &constant name="struts.action.extension" value=","&&/constant&
  &package name="test" namespace="/" extends="struts-default"&
  &interceptors&
  &interceptor name="checkInterceptor" class="checkInterceptor"&&/interceptor&
  &interceptor-stack name="myInterceptor"&
  &interceptor-ref name="checkInterceptor"&&/interceptor-ref&
  &!-- 一定要调用默认的拦截链 --&
  &interceptor-ref name="defaultStack"&&/interceptor-ref&
  &/interceptor-stack&
  &/interceptors&
  &!-- 用于登录 --&
  &action name="login" class="loginAction"&
  &result name="success"&/success.jsp&/result&
  &result name="error"&/error.jsp&/result&
  &result name="checkSession"&/checkSession.jsp&/result&
  &interceptor-ref name="myInterceptor"&&/interceptor-ref&
  &/action&
  &!-- 清除session --&
  &action name="delSession" class="delSession"&
  &result name="back"&/login.jsp&/result&
  &/action&
  &/package&
  &/struts&
【责编:ivy】
?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]
相关产品和培训
 友情推荐链接
 认证培训
 专题推荐
 ? ? ? ? ? ? ? ? ? ?
 今日更新
?&?&?&?&?&?&?&?&?&?&
 社区讨论
 博客论点
 频道精选
 Java 频道导航Struct2相关
加载struts.xml过程
vcD4KPHA+y7XD96O6PC9wPgo8cD48L3A+Cgox1NrG9LavtcTKsbryvNPU2MHLyP249sXk1sPOxLz+IHN0cnV0cy1kZWZhdWx0LnhtbKGic3RydXRzLXBsdWdpbi54bWyhonN0cnV0cy54bWzI57n71eLI/bj2zsS8/tPQz+DNrLXEz+6jrLrzw+a4srjHx7DD5rXEoaNzdHJ1dHMueG1szsS8/rHY0Ou3xdTac3Jjz8KyxcTc1dK1vaGjCjxwPjwvcD4KPHA+PHN0cm9uZz694bn7wODQzTwvc3Ryb25nPjwvcD4KPGJsb2NrcXVvdGU+CjxwPjwvcD4KPHA+y7XD9zwvcD4KPHA+PC9wPgo8cD48L3A+CgrDv7j2YWN0aW9ut723qLa8t7W72NK7uPZTdHJpbmfA4NDNtcQmIzIwNTQwO6Osc3RydXRz0ru0zsfrx/O3tbvYyrLDtCYjMjA1NDA7ysfTydXiuPYmIzIwNTQwO8i3tqi1xKGj1NrF5NbDzsS8/tbQo6zDv9K7uPZhY3Rpb27UqsvYtcTF5NbDtryx2NDr09ByZXN1bHTUqsvYo6zDv9K7uPZyZXN1bHS21NOm0ru49mFjdGlvbrXEt7W72CYjMjA1NDA7oaNSZXN1bHTT0MG9uPbK9NDUo7oKCm5hbWU6veG5+7XEw/vX1qOsus1hY3Rpb27W0LXEt7W72CYjMjA1NDA70rvR+aOsxKzIzyYjMjA1NDA7zqpzdWNjZXNzO3R5cGU6z+zTpr3hufvA4NDNo6zErMjPJiMyMDU0MDvOqmRpc3BhdGNoZXIuCgo8cD48L3A+CsDg0M3B0LHtPC9ibG9ja3F1b3RlPgo8YmxvY2txdW90ZT4KPGJsb2NrcXVvdGU+CjxwPjwvcD4KPHA+PC9wPgo8cD7U2nN0cnV0cy1kZWZhdWx0LnhtbM7EvP7W0KOsyOfPwsPmy/nKvqO6PC9wPgo8cD48aW1nIHNyYz0="/uploadfile/Collfiles/00.jpg" alt="\">
从上述可以看出总共10种类型默认类型为ServletDispatcherResult即转发。结果类型可以是这10种结果类型的任意一种。
Dispartcher类型
Dispatcher类型是最常用的结果类型,也是struts框架默认的结果类型。
Redirect类型
Redirect属于重定向。如果用redirect类型,则在reuqest作用域的值不能传递到前台。
RedirectAction类型
struts2中的action,只要访问一次就要实例化一个对象。这样就不存在线程安全的问题。这也是struts2框架的一个好处。
Struts2与serlvet接口
通过前面的练习大家都知道,在action的方法中与servlet的所有的API是没有任何关系的。所以在struts2中做到了aciton与serlvet的松耦合,这点是非常强大的。但是如果没有HttpServletRequest,HttpServletSession,ServletContext有些功能是没有办法完成的。比如购物车程序,需要把购买的物品放入session中。所以就得找一些路径使得在struts2中和serlvet的API相结合。
在struts2中,用拦截器(interceptor)完美的实现了这一需求。在struts2中,
内置了很多拦截器,在struts-default.xml文件中可以看出。用户还可以自定义自己的拦截器。自定义拦截器需要以下几点:
1、 在配置文件中:
包括两个部分:声明拦截器栈和使用拦截器栈
2、 在拦截器类中
一个类如果是拦截器,必须实现Interceptor接口。
一个系统的国际化就是根据操作系统的语言,页面上的表现形式发生相应的变化。比如如果操作系统是英文,页面的文字应该用英语,如果操作系统是中文,页面的语言应该是中文。
建立资源文件
资源文件的命名规则:
默认的命名为:
文件名前缀.properties
根据语言的命名为:
文件名前缀.语言种类.properties
resource_zh_CN.properties
item.username=用户名
item.password=密码
resource_en_US.properties
item.username=username_en
item.password=password_en
resource.properties
item.username=username
item.password=password
需要在配置文件中加入:
1、这样struts2就会去找你写的资源文件
2、name的值可以在org/apache/struts2/default.properties中找到。
3、如果放置的资源文件在src下,则value的值可以直接写,如果在包中则可以写成包名.resource。
4、在这里resource是个基名,也就是说可以加载以resource开头的文件。
利用就可以把资源文件中的内容输出来。
1、标红色部分的是要从资源文件中找的内容。item.username和item.password代码key的值。
2、也可以利用%{getText("item.username')}方式来获取资源。采取的是OGNL表达式的方式。
3、getText的来源:
从源代码可以看出ActionSupport实现了TextProvider接口。
Provides access to {@link ResourceBundle}s and their underlying text messages.意思是说提供了访问资源文件的入口。而TextProvider中提供了getText方法,根据key可以得到value。
可以利用ActionSupport中的getText()方法获取资源文件的value值。
在servlet中获取页面传递过来的数据的方式是:request.getParameter(“username”);这个代码可以获取到页面的username的数据。在action中可以通过属性驱动的方式来获取页面的值。
上面时jsp代码,下面时action,嫌麻烦就放一块了
页面中name的属性和action中的属性必须保持一致。Action中的属性必须有get和set方法。满足这两个条件就实现了属性驱动。
如果属性中要求接受的不是String类型,而是其他类型呢?struts2将做自动的转化。
通过属性驱动可以得出,只要在action中有age和name属性,有set和get方法就能得到页面上age和name的值。如果action中是日期类型呢?
在struts2中可以自动隐式得到转化。比如在struts2中可以把字符串类型转化为日期类型。但是必须要求是yyyy-mm-dd的格式。其他格式转换不了。
如果页面上传过来的是yyyyMMdd,应该怎么办呢?类型转化将解决这个问题。
DateConverter类
1、 这个类必须继承DefaultTypeConverter或者实现TypeConverter接口。
2、 在TypeConverter接口中,声明的方法是这样的:
可以看出里面实际上有六个参数。但是这个类中,只有三个参数。
在DefaultTypeConverter类中:
可以看出在实现了converValue的方法中调用了convertValue有三个参数的方法,所以能够执行。这样做的好处是程序员即可以用三个参数的方法,也可以用6个参数的方法。
在convertType方法中:
value为从页面上传递过来的值
toType为转换以后的类型
properties文件
做了前面的事情后,DateConverter类仅仅是一般的类,struts2框架不能把这个类看作为数据结构的转换类。所以需要把DateConverter类用配置文件进行注册。
注意事项:
1、 这个文件必须和相应的action类放在同一个目录下。
2、 文件的名称为:类名-conversion.properties。
3、 配置文件中的内容为:
action中的属性名称=DateConverter全名
4、 在执行的时候,一定要让浏览器的环境是中文的执行环境。在默认情况下,yyyy-MM-dd只有在中文的浏览器环境下才能识别,如果是英文识别不了。
可以参照XWorkBasicConverter这个类说明问题。
全局properties文件
除了上述做法,还可以考虑全局的配置文件
1、 在src下新建一个properties文件,为xwork-conversion.properties。
2、 在文件中键值对是这样的:
java.util.Date= struts2.action.converter.DateConverter
这样配置,只要是java.util.Date类型都会通过DateConverter这个类进行转化。适合于所有的action中的属性。
假设你正在完成一个网站的注册功能。在后台需要得到20多个属性,才能完成注册。如果用action中的属性获取值,就是这样的情况:
1、 在action中会写20个属性
2、 这20个属性添加set和get方法。
这样会导致action中的代码结构不是很好。模型驱动很好的解决了这个问题。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。java web开源开发框架列表 二 - Hard - 51Testing软件测试网 51Testing软件测试网-中国软件测试人的精神家园
java web开源开发框架列表 二
& 15:30:13
/ 个人分类:
&PrimeFaces&PrimeFaces是一个用于提高JSF 应用程序开发效率的开源类库。主要由三个模块组成:UI Components:PrimeFaces UI模块提供了拥有Rich
Web用户体验的各种JSF组件。PrimeFaces使用Yahoo
UI库做为默认的客户端框架。PrimeFaces提供的JSF组件能够处理JavaScript.
Rendering和如何在服务器端与JSF集成。PrimeFaces
UI组件包括:HtmlEditor、ImageCropper、Dialog、AutoComplete、Flash based
Chart等。并支持通过Ajax更新页面。Optimus模块提供简化JSF开发的解决方案。Optimus提供基于 Guice
IOC容器的注释来代替XML配置和一个XML-less Navigation Handler能够让你减少基于XML配置JSF
Navigation的需要。此外Optimus还支持利用JPA实现数据持久化;将DataTable的内容导出成Excel与PDF。支持安全扩展。FacesTrace模块提供跟踪JSF Web应用程序的各种工具包括:JSF LifeCycle可视化查看器;性能跟踪器; Log4J适配器;FacesMessage监听器;组件树可视化查看器。&AribaWeb&AribaWeb
是一个基于组件的Web应用快速开发框架,用于创建基于Ajax的web应用程序。AribaWeb集成了开发应用所需的全部功能,提供丰富的
Rich Widgets(forms、pivot、tables、charts、rich text
editors等)并且与一个ORM数据库框相绑定。AribaWeb开发的Web应用支持部署在不同的J2EE运行环境中。&Jspresso&Jspresso
是一个full-stack
RIA框架,用于开发N层分布式desktop-like应用程序。基于Jspresso开发的应用程序可以部署成Adobe's Flex、Ajax
(WingS)、ULC与Swing,并且是不需要改动任何GUI代码。&Joindesk&Joindesk是一个建立在Ext JS, Velocity and Spring基础上的J2EE Web应用框架。Joindesk能够加速使用Ext组件的J2EE Web应用开发。不用编写一句JavaScript就可以在Java代码中直接响应来自Ext组件的事件。你在处理AJAX请求时也不必关心JSON或XML数据格式。使用Joindesk框架开发Web应用UI交互,就像使用VB/VC开发桌面应用UI交互一样方便快捷。在Joindesk中,相关的表单定义(JS)、页面模板(HTML)和页面处理逻辑(class)可以打包在一个文件中发布,使web应用模块化开发部署更方便。&GWTruts&GWTruts
是一个易于使用的GWT MVC和依赖注入框架。它将GWT
module分割成view、controller和validation等部分类似于传统Web MVC框架如Apache
Struts。GWTruts使用XML配置文件来配置视图,控制器和其它属性。此外GWTruts还提供一个依赖注入机制类似于Spring能够让你自
由定制你的视图和控制器。GWTruts完全采用GWT开发,因此能够很好地与任意GWT插件/扩展结合使用。&Nutz&Nutz是一组轻巧的开源框架,内容涵盖了:1.数据持久化(Data Persistence)2.反转控制(Ioc)3.Web框架(MVC)Nutz所有的功能均不依赖第三方的jar包,上面三个部分可以独立使用。&jQuery4jsf&JQuery4jsf是一个开源JSF组件库。这些组件基于框架开发,当前可用的组件包括:Accordion PanelDatepickerDialogProgressbarSliderTabsDraggableDraggableResizableEffectAutocompleteCarousel。&vaadin&vaadin是一个用于创建胖客户端Web应用程序的Java框架。拥有基于GWT实现的各种控件,所有代码全部采用纯Java实现,不需要编写任何JavaScript代码,没有复杂的配置,快速,易于扩展和维护。&etmvc&etmvc是基于Java技术,为WEB开发提供的一套简易MVC框架。简易但不简单,其设计和实现借鉴业界众多的优秀框架,如struts,spring mvc,ror,grails等,力图为Java开发人员提供一套高效的开发框架。基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点约定优于配置,免除开发过程中的配置之苦具有良好的自我扩展能力易于同spring等IOC框架进行集成从实用的角度出发,精益求精,从实际开发经验中提取有用的模型设计专门同EXTJS等框架进行整合的机制&&Induction&Induction是一个强大,高性能的Java MVC Web应用开发框架。支持动态重新加载。基于类型的依赖注入。模型、视图、控制器之间的依赖分析。Induction的目标是简化开发复杂、高性能、可维护的Web应用。&Play Framework&Play
Framework是一个功能完整的Java Web开发框架。采用RESTful架构设计,简便灵活。Play
Framework使用MVC模式作为Web层,集成Hibernate管理持久层,Play
Framework还使用一个基于Groovy的模板引擎。Play Framework让开发者无须重新编译打包发布应用,即可看到修改后的效果,方便开发人员调试应用。Play Framework采用了无状态模型,是一个真正意义上的“无共享”系统,能够在多个服务器上部署多个Play Framework的实例,所有实例都不会互相干扰。Play Framework采用了Groovy作为模板引擎,让表示层真正做到了开发高效简洁Play Framework拥有精确的错误定位机制,当错误发生的时候,可以精确的定位到错误代码的位置。Play Framework的速度很快,启动快,运行的速度也十分快。&ExpressWind&ExpressWind
是一个REST风格的MVC
Web开发框架,与传统MVC框架(如Struts、WebWork)完全不一样。支持直观友好的URL如'/blog/display
/'这样更利于搜索引擎收录。能够在Java类方法中定义HTTP请求。支持用拦截器来处理事务、和其它事情。支持用
ExceptionHandler来集中处理和控制异常。支持文件上传。&Rose&Rose是由人人网提供的、基于Servlet规范、Spring“规范”的开放源代码WEB开发框架。Rose是面向使用Java开发的同仁们的。Rose 提供的各种特性和约束惯例,目的就是为了使您在能够轻松地开发web程序。如果您觉得Grails的想法很好,您不必转向它,Rose可以给您这种感觉,同时基于您对Java的熟悉,您又能更好地控制Rose。我们希望Rose对各种技术的整合和规范,能使您摆脱犹豫,摆脱选择的困难,规避没有经验带来的开发风险。Rose不仅整合技术,同时还强调最佳实践,甚至包括名称规范。我们不仅仅只是提供技术,我们还会引导您应该如何使用好技术。Rose规范了对Spring的使用,虽然大部分时间之内,您可能只是使用 @Autowired 即可,大多数时候的确这样也就够了。但 Rose 也允许您放置applicationContext-xxx.xml文件来扩展Rose。&Simpleframework&Simpleframework
是基于 Intercepting-Filter模式和MVC2模式(我们称之为:后处理模式,After-Processing
Pattern),基于“应用即组件,组件即应用(Application are components,component can be a
application)”理念采用Java 技术实现的Web应用级框架。其核心价值在于提供了以声明方式来描述组件行为的机制,该机制有效整合了客户端的UI视图、处理逻辑、存取访问控制策略、校验规则,以及服务器端的数据持久化、分布式缓存、业务规则等的一体化应用提供一套完整的Web UI组件来简化和加快AJAX/富Web应用(Rich Internet Application)的构建、部署及维护进程,从而达到降低Web应用开发成本、缩短开发周期和提高应用效能的目的。&jdonmvc&一个站在Jdon框架上面向DDD,DCI,CQRS等架构风格的表现层开发框架。框架特点:超级易用,易扩展,默认会使用Jdon作为领域模型管理框架。&J-HI&J-HI是一款JAVA WEB应用软件快速开发开源平台,主要服务于软件企业和传统行业企事业单位信息中心的开发人员,为他们提供一套完整的一站式的JAVA WEB应用软件快速开发解决方案。&&平台包括如下两个部分:&&&&1、应用开发框架:本平台是团队成员多年企业应用开发经验的总结,提供大量通用的API与通用业务功能。&&&&2、集成开发工具:采用MDD(模型驱动开发)的开发方式,快速搭建、生成可运行系统。&&&&平台主要致力于解决如下问题::&&&&1.高效: 在J-HI中,有对业务对象和业务流程的图形化设计工具,能快速的生成一套完整的应用程序。&&&& 2.高质: 从业务层面上说,利用J-HI产品的业务对象和业务流程设计器能以图形化的方式直观描述业务需求,快速生成代码完全开放的完整应用,满足了客户的业务需求;。&&&&3.变化: 利用J-HI的业务对象设计器可随时修改对象属性,快速应对客户的需求变化,并且源码可重复生成,不影响手写的代码。&&Summer&Summer
是下一代Spring MVC的表现层框架。它提供了最好的HTML5模板引擎并利用了许多Spring3的特性如内容协商(Content
negotiation),REST支持,资源处理等。此外它还支持一些开箱即用的JavaEE6规范如Servlet3.0,JPA2.0,Bean
Validation和EL2.2。&dispatcher&一
个简单的MVC框架或者不能算是MVC 作用:通过URL直接将请求转发到具体的方法上。
配置:唯一的配置文件为config.properties,暂时里面只需要配置一句url.suffix=com.wenbin.action(就是需
要进行转发的类的包路径,多个路径用逗号隔开)。解决的问题:简化配置,去除配置文件,尽可能的使得软件的维护成本降低。并且降低成本。&SoybeanMilk&SoybeanMilk是一个极其简易、友好、且零侵入的Java MVC实现框架:它几乎没有学习成本,你只需要熟悉jsp和servlet技术也不需要你遵从任何代码编写模式你的代码中找不到任何这个框架的踪迹使用它,您仅需要指定URL和参数值便可以执行任何Java对象的任何方法并控制和取得其返回结果。如果你是一个WEB开发者,并且已经有点厌烦现有的WEB开发框架所固有的开发方式(固定的代码编写模式、芝麻点的小功能也要写一堆接口),应该考虑了解下这个框架。还有,这个框架并不是仅能应用于WEB程序,你也可以在桌面程序中使用它。&GWT Portlets&GWT
Portlets是一个开源Web框架用于开发GWT(Google Web
Toolkit)应用程序。它定义了一种非常简单、高效、强大的编程模型来构建好看和模块化的GWT应用。编程模型有点类似于为Liferay,
JBoss Portal等portal服务器编写一个JSR168 portlets。&Spring Mobile&Spring Mobile 是 Spring MVC 的扩展,用来简化上的Web应用开发。&SerfJ&SerfJ提供了一种最简便的方式来开发Java REST Web应用程序。它能够帮助你开发一个基于优雅MVC模式的应用程序,采用某些约束习惯来代替配置文件,所以不需要用配置或注释来指定哪个视图对应控制器中的哪个方法。&GrailsUI&是一个插件,封装了YUI和 YUI 扩展(),将二者的组件以Taglib的形式提供给用户,让Web页面UI的开发变得方便快捷。&Pandora&Pandora是一个易于使用、快速和轻量级的Web应用开发框架。Pandora使用Velocity模板作为前台页面视图,作为持久层来操作数据库。&eRedG4&eRedG4(易道系统集成与应用开发平台)是一个开放源代码的、面向企业计算环境下异构系统集成与行业应用快速二次开发的平台。它包括:基础类库、业务模型框架、富浏览器端开发框架、富桌面端开发框架、权限参考模型、平台代码生成器六大组成部分。&Tobago&Tobago:目标是提供一套基于JSF以及myfaces的良好设计的UI组件。Tobago不仅仅只是一套标签库。下面的几点让它与其它框架不同:- 无需HTML设计,聚焦于商业应用程序的开发。开发者可以将精力集中在用户界面上,而不是网页。- UI组件是对HTML的抽象,它不仅仅可以用于HTML页面,它的输出格式可以定制。- “主题”机制,使得可以很容易切换应用程序的外观。- 布局管理器可以自动排列组件,这就意味着无需使用HTML表格或其它技术来手工管理组件的布局。&full-hibernate-plugin-for-struts2&这是一个能够将Hibernate完全整合至Struts2中的插件。包括:Hibernate Validator整合,Hibernate Core Sessions注入,事务注入和Hibernate Core配置管理Web工具。&Prism&三
棱镜 (Prism)是一个由JAVA开发的超轻量的开源框架,其目标是实现WEB系统的页面与代码分离,并且不需要书写大量的配置文件。 同时,三棱镜
(Prism)还是一个非常简单的框架,稍有基础的人都可以在10分钟之内了解开发中的全部规范,1小时之内就可以灵活应用。三棱镜 (Prism)框架设计构思来源于众多项目实践,框架充分借签了当前非常流行的开源Web框架 Struts,吸取了其优点及精华,并尽力简化了需要学习的新内容,在实现了页面及代码完全分离的前提下,充分利用开发人员已掌握的开发知识。&OpenHandX&OpenHandX
前身是我个人长期积累的复用代码,因为工作原因这些代码长期不使用、不整理久而久之就会被遗弃掉,实在可惜。终于有一天下定决心将这些复用代码重构、
重新组织、工具化、并补充文档,就产生了OpenHandX。如果只是将OpenHandX工具化容易造成每个工具之间割裂,很难形成一揽子解决方
案,OpenHandX的作用大打折扣。这就需要OpenHandX继续产品化、平台化。OpenHandX包括web开发、异步批量开发、报表工具、工
作流、规则引擎等。&J-HI&J-HI是一款JAVA WEB应用软件快速开发开源平台,主要服务于软件企业和传统行业企事业单位信息中心的开发人员,为他们提供一套完整的一站式的JAVA WEB应用软件快速开发解决方案。平台包括如下几个部分:1、J-HI平台集成环境:J-HI团队开发了一个集成开发环境J-HI Studio,在此集成开发环境之上,开发人员能够快速搭建自己的开发环境,创建自己的模型,快速生成代码。2、
核心框架:平台为Java代码与js代码之间提供了一套完整的面向对象的核心框架支撑系统,可以认为这是一个抽象层,无论是在页面表现上,还是在CURD
的任意一层,平台均提供了最大限度的抽象。用以保证平台本身的可扩展性、稳定性及灵活性。J-HI平台中提供了大量的API(java与js),为用户在
开发过程中随需调用,从而进一步加快开发速度,保证代码质量。3、业务平台功能:包括权限管理、组织结构、枚举管理等。4、工作流:包括工作流引擎及流程编辑器等。&visural-wicket&visural-wicket是一组开源的组件和工具。他们被设计成重量轻,松散耦合,并很容易以最小依赖与任意现有Wicket应用程序相集成。组件包括:- A combo-box component which allows users to select an item from a
list of values. Can also be used as a "suggestion" box that does not
enforce selection of one of the list values.- A "light box" component which will display an image, a group of
images, another web container or an iframe. in an attractive modal
gallery-like window. Based on- A WYSIWYG html editor as a drop-in replacement for a wicket text-area. Based on- a source-code dislpay component with syntax highlighting. Based on.- Two types ofsubmitand regularlinkcomponents. There are modal links, which display a modal "Please Wait"
(or custom) message while a form. or action is processed, and
"indicating" links, which replace certain DOM elements with an "AJAX
style" indicator image (or custom content) while a request is being
processed. Probably best tofor these ones.- a new behavior. which provides a pop-up Javascript. date pickerInputHint - a new behavior. which provides “hint text” inside input fields, which disappears when the user focuses on the field- a new behavior. which provides rich, attractive, stylable tooltips for any component– prompt/confirmation dialogs that can be used for any Link / Submit type Wicket action- a flexible modal dialog component which can be open/closed via Ajax or client-side Javascript.- integration of LessCSS and Wicket, so you can use “.less” files like they were “.css”- a binding behavior. and Form. which automatically transfers JSR-303 validation annotations on to Wicket Forms&MinuteProject&MinuteProject
是一个逆向工程工具,它能够根据数据库结构生成由:spring、hibernate、jpa、ibatis、FitNesse、VAADIN、
OpenXava、Roo、Grails、Playframework等技术组合而成的应用程序框架。&Sweet&Sweet是一个基于Scala实现的Web开发框架。利用其开发的Web应用程序可运行在任意Java servlet服务器上,并可以使用所有Java类库,服务器等。Scala是一种比Java更高级和更易于编写的开发语言。&Webx&Webx
是建立在Java Servlet
API基础上的的通用WEB框架。用Webx搭建的应用可以运行在任何一个标准的WEB应用服务器上面:Tomcat、Jetty、Jboss、
Weblogic……。 是一个在集团内部广泛使用的,层次化、模块化的一个Web框架。Webx是基于经典MVC设计模式的WEB框架,推崇页面驱动和约定胜于配置的理念。Webx是一个基于Spring的组件框架。组件是一个软件包,它可以被其它组件扩展,也可以扩展其它组件。利用这些特性,Webx不仅能够用来开发高度可定制的Web应用(这是它的主要功能),也能够用来帮助你开发高度可扩展的非WEB的应用。&firefly&精于心,简于形。firefly应用程序框架。firefly是一个追求高性能的应用程序框架,性能大幅超越spring3、struts2等,详情请看报告零依赖,仅仅依赖于jdk精简、轻量、无侵入core包含IOC、MVC、Interceptor等常用功能使用简单,基于约定优于配置的思想,可完全使用Annotation方式 或Annotation和XML混合方式进行配置&jibeframework&Jibe是一个现代框架基于Java和Web技术。这个框架提供了一个简单,但高效的机制来构建动态Web应用,表现层采用ExtJS实现。&Wabacus&JAVA通用快速开发平台(The Rapid Platform. For J2EE Development)1、Wabacus框架是一个JAVA开发框架,提供完整的前后台服务,所以与JQuery,Ext等纯客户端框架不同,它能实现完整的SSH框架实现的功能,但是开发效率比SSH框架快好几倍;2、Wabacus框架对项目没有任何侵入,因此可以与任意框架(包括SSH)共存于一个项目,也就是说部分用Wabacus快速开发,部分Wabacus目前不支持的(比如webservice、全文检索等)则用SSH或其它框架开发。3、这里广泛使用的“报表”术语,不是指真正意义上的报表,只是一个习惯称呼,Wabacus框架也不仅仅是一个报表工具,而是一个JAVA开发框架,或称快速开发平台。Wabacus框架主要特点:支持热部署,增、删、改应用后,无需重启服务或redeploy,只需访问/ShowReport.wx?ACTIONTYPE=updateconfig即可。提供搜索、翻页、列过滤、列排序、列拖动,调整列宽,下载Excel等功能支持任意复杂表头应用的配置,支持数据细览报表全程ajax加载,支持IE、Firefox、Chrome、Opera等多浏览器。支持多数据源,多数据库类型(sqlserver2000、sqlserver2005、mysql、oracle、DB2等)支持国际化,支持客户和服务器端的校验配置支持数据行分组、列分组、树形表格,数据统计功能支持横向滚动条及表头固定的垂直滚动条支持任意层级的主子报表,主从报表支持常用输入框类型,且支持输入联想、下拉框关联、文件上传等功能支持数据编辑功能、支持各种表单的配置杜绝注入和XSS攻击&joywindow&joywindow是的目标是用java语言与HTML显示来构建桌面应用程序.通过它,开发者可以用WEB开发的MVC模式构建桌面应用程序,可以有效提升开发速度.它实现了模型,控制,显示层的分离,可以让界面设计者与程序开发者的分工.并且在界面设计上,可以充分利用web开发的javascript,css,flash,HTML等技术,实现丰富多彩的界面效果.joywindow内置一个类struts2.0的基础框架(wox),可以自动封装输入值,并通过配置进行逻辑跳转.joywindow虽然不如java web一样支持jsp动态页面,但是集成了velocity作为动态页面解析语言.工作原理:joywindow原理是java内嵌浏览器做界面展示,通过一个simpleServer来作为传递资源,响应事件的中间处理,在base版本中,simpleServer也是开发的重点.&XEO(eXtensible Enterprise Objects)&XEO
是一个开发框架设计用于构建企业Web应用系统。XEO是围绕面向对象的概念和模型驱动开发(MDD)实现。利用XEO,你模型的业务实体(包括它们
的属性和方法)都当成XEO模型,然后交由该框架的“Builder”来生成应用程序的支撑架构比如:数据库表格(持久化数据)和Java类(提供对象-
关系映射和方法)。创建好XEO模型之后就可以生成基于这个模型的Web页面(包含查询,修改,列表等功能)。&Beangle&Beangle立足Java企业,提供敏捷、基于约定(Convention Over Configuration)的脚手架和工具包。着力以简化项目构建,并规范项目开发习惯,形成易于管理的最佳实践.()子模块1、提供字符串、压缩、再配置、csv等基础api的辅助方法2、提供对实体映射、查询存储、转换的基础api3、Rule 对规则定义、使用和存储的api4、支持基于spring的再配置和自动配置5、提供struts2的约定优先配置和基础Action6、提供常见的web组件7、Security Core 提供简化的权限控制框架8、Security Web 提供web应用上的权限集成9、Security Bluepring 提供基于数据存储的默认权限实现10、支持cas集成11、支持Ldap集成12、Webapp System 提供了样例应用scala实现的database程序库1、Database Meta. 数据库原信息支持包2、数据库复制工具&WEB4J&是个极度简化、特色十足、一站式的Java Web框架。WEB4J框架的创建者John O'Hanley说到:WEB4J在提升Java开发生产力的同时又消除了各种痛苦,因为其非常精简且能显著地加快应用开发的速度。WEB4J具有如下特性:1、拥抱约定优于配置(类似于Rails)2、数据为王,而不是代码3、不会强迫开发者穿新鞋走老路4、不依赖于JavaScript、客户化的XML和注解以及对象关系映射5、不会对你所编写的类施加线程安全的约束6、可以用普通的HTML编写表单WEB4J最吸引人的一个地方就是它可以将SQL放到纯文本文件中且游离于代码之外,之后就可以在代码中通过特殊的对象引用这些SQL,这样DAO类就变得非常紧凑了。WEB4J个头很小,一共才88个类,而Rails中却有346个类、Struts中有720个类、Spring中有2400多个类。John说WEB4J的学习要比其他框架容易的多。其站点对WEB4J的薄弱之处也毫不掩饰:1、没有用户界面widgets库2、未提供对AJAX、Web Services及依赖注入的内置支持3、支持JSP/JSTL,但却没有像Velocity那样的标记库&Spark&Spark是一个源于Sinatra的微型Web开发框架,用于以最小的代价快速开发Web应用。 Sinatra是一个基于语言,以最小精力为代价快速创建web应用为目的的DSL( 领域专属语言)。&Spring4Me&Spring4Me是从另一个开源项目中提炼出来的,以 Spring 为核心,在 Spring MVC 的基础上实现了一套基于组件的编程模型。Spring4Me 的未来发展方向主要是以 Spring MVC, Spring, JPA 为主, 并以 Demo 工程的形式来展示 Spring MVC, Spring, JPA 的整合方式,以及基于 Spring4Me 的组件开发方式。&douyu&一种新的Java开发平台,将编译器、Http服务器、MVC、权限完美整合在一起,实现了ORM的自动化。&Easy Java Websites&Easy Java Websites (EJW)是一个基于Java Servlet实现的MVC Web应用程序开发框架。它专门为能够以非常简单的方式来开发Web应用程序而设计。EJW简单到可以在几分钟内学会。&jbob&JBob是基于Java和AJAX的平台系统,采用Ext JS作为前端用户界面,Et-mvc作为后台支持框架,主要用于快速开发企业级信息管理系统。平台集成了开发环境、运行框架,主要实现了用户组织、资源与权限管理、通用操作、国际化语言处理、枚举管理、运行监控等通用应用。平台从设计到开发
都坚持简约实用和约定优于配置的原则,致力于精简的配置、高效的开发模式和稳定的性能,让你集中精力解决客户需求,快乐地开发WEB项目。用户和权限控制是JBob平台系统的核心功能之一,从用户角度出发,以简易实用和高效稳定的方式实现权限配置。&Cetia4&Cetia4是一个对REST提供完善支持的Web开发框架。Cetia4特点:基于Servlet API开发,可以运行于所有的Web容器中。优点:1. 可以充分利用Servlet API和JSP等资源,需要额外学习的概念较少,学习成本较低。2. 对于传统的Web应用,可以使用服务器端HTTP Session;对于Web服务类应用,不使用HTTP Session,基于无状态服务器模型做开发。3. 自身包括了对于Web MVC的支持,熟悉Web MVC框架的开发者很容易理解。还内建了参数映射、参数验证等等传统Web MVC框架所支持的功能。4. 内建了自己特有的导航对象栈的概念,对于支持传统的Web应用的开发(基于浏览器的导航)非常有帮助。5. 提供了JSP标签库,对于传统的基于HTML表单的Web开发非常有帮助。6. 支持与SiteMesh相配合,由SiteMesh来支持页面布局的重用。7. 内建有与Spring的集成,集成起来非常容易。8. 配置文件完全基于标准的web.xml,不需要额外的配置文件。大量使用默认配置,一般情况下足以满足常见的需求。9. 拥有很好的文档。10. 有内建的国际化支持。缺点:1. 没有内建的HTTP认证机制,需要自行开发安全机制。2. 对于内容协商的支持比较弱,仅支持HTML和XML格式的表现。需要加以扩展才能支持其他格式的表现。&PrettyFaces&PrettyFaces是一个开源基于过滤器(Filter)的Servlets扩展 ,对JavaServer Faces– JSF 1.1, 1.2和2.0提供了增强支持。能够用于创建便于书签收藏、搜索引擎友好的网址。PrettyFaces优雅地解决了“RESTful URL” 问题,包括这样一些特性如:URL Rewriting— Replace ugly URLs:
“/faces/page.jsf” with pretty, SEO-friendly, human URLS:
“/optimized/page/”; The client browser never sees your original URLs,
even in the source-HTMLDynamic view IDs— Now with dynamic view ID mapping
for URLs (through El method expressions,) you can show different views
based on run-time conditions, effectively de-coupling the URL from the
JSF view.Page-load actions— Call one or more action-methods, at one or more phases, before rendering a view.Managed parameter parsing— HTTP parameters parsed
from URLs are stored in managed beans, simply get a reference to your
parameter bean for easy access from other Java classes.Navigation by ID— Define your page IDs in one
place, reference them easily in action-methods and components, using
standard JSF navigation techniques.Integrated validation— For URL and query-parameters, able to re-use existing JSF validator objects.Easy to configure— Requires absolutely m may be enabled using XML or annotations.&基于全注解方式的SSH基础框架ssh-base-framework&基
于struts2.23 + spring2.5.6 + hibernate3.6.4 +
hibernate-generic-dao1.0(除了spring,我整合的都是最新的GA包,hibernate-generic-dao是
google code项目库中一个开源的basedao,我灰常喜欢,因为我找不到更好更适合我的)。&Gaelyk&Gaelyk
是一个专门针对 Google App Engine 设计的轻量级 Groovy 框架。提供URL路由系统。Google App
Engine是Google提供的基于Google数据中心的开发、托管网络应用程序的平台,每个 Google App Engine
应用程序都可使用500MB存储空间,以及可支持每月约500万页面浏览量的CPU和宽带。目前每个用户可以免费创建十个应用&EShow&采用流行的J2EE轻量级框架(Struts2+Spring +Hibernate),基于国外开源框架,
我们可以简称Appfuse中文加强版… 简单易用 Java新手和入门SSH框架着,非常简单,非常易用! 快速开发
使用基于SSH框架的EShow平台,可以快速开发出中小型企业网站和社区门户! 完全开源 完全开放EShow的每一个细节! 更新迅速
到群软件团队会每一天更新EShow平台,使得EShow越来越好 理想远大
让EShow平台成为Java入门者的必备学习框架,成为一个流行的J2EE框架。&topaz-turquoise&Topaz
是一个用于开发EJB+JSP程序的小型框架, 为了演示开发使用方式,还提供了一个名为Turquoise的WEB程序例子。
并附带了我在开发中使用的MySql数据库。(数据库文件使用Navicat导出) 我是用的Eclipse版本为3.6 英文版。 提供的程序,分为
topaz、turquoiseEJB和turquoiseWAR这三个项目。
请在Eclipse中使用Ant编译这三个项目。(需要根据你的目录,修改Ant文件!)
其中,topaz是核心框架,提供了一些Java包以供继承开发之用,
并提供了名为"cn.com.topaz.servlet.ControllerServlet"的一个核心类,实现一个简单的控制器。
turquoiseEJB是一个EJB项目,继承了topaz的部分类,实现EJB例子。 turquoiseWAR是一个JSP
WEB项目,提供了几个JSP例子。&eweb4j&EWeb4j,一个JavaEE的开源框架,全栈式Web框架。支持REST,事务模板,MVC,ORM,IOC等功能。主要特性:&Component组件支持&DWZ组件分页组件……MVC&约定由于配置,可零配置。两种配置方式(xml,注解)供您选择更加灵活方便的url mapping两种参数绑定方式(类属性、方法参数)供您选择RESTfulJson渲染URL拦截器action验证器……IOC&基本数据类型注入无限制嵌套Pojo注入setter方法注入和构造方法注入ORM&约定由于配置,可零配置。两种配置方式(xml、注解),供您选择简单的DAOFactory,提供InsertDAO、DeleteDAO、UpdateDAO、SelectDAO、DivPageDAO、SearchDAO、CascadeDAO接口。支持表关系、级联操作事务模板JdbcTemplate支持多个数据源无缓存,无懒加载,主动级联操作,纯粹的ORM……各种Util工具类&BeanXMLUtil,一个pojo序列化和反序列化到xml的工具类,基于注解FileUtil,一个文件操作工具类JsonConverter,JSON转换工具类ReflectUtil,一个反射工具类,能获取setter、getter,使反射获取方法,属性更简易,支持父类的反射……&MVC框架 dingframework&使
用java有多年了,一直以来使用java就是用来做web开发,学习java是从servlet和jsp学起,刚开始感觉到serlvet,jsp好复
杂,好强大,jsp强大到可以在页面里写java代码,随心所欲,无所不能。java代码和HTML代码结合在一起好乱,后来慢慢地接触了MVC的框架,
先是struts,webwork,再到struts2,特别是struts2先进的设计理念,struts2无比的强大,但它的身躯也庞大,如此庞大的
东西跑起来速度也就没那么快了,struts2的运行速度远比不上servlet。Spring
MVC的速度也好快,但不喜欢它基于元数据的配置。于是想找一个同struts2一样有先进的设计思想,身躯小,速度和servlet差不多的框
架,google了,但没有找到,于是就动手自己写了一个,于是有了dingframework MVC的延生。dingframework
MVC是一个轻量的,速度极快的MVC框架。它只有几十K大小,功能和使用同struts2差不多,基于XML配置,配置文件分模块化,自动类型转换,声
明式表单校验,国际化,自定义拦截器,自动化文件上专,防止重复提交等。dingframework
MVC极其简单,有struts2的大部分功能,完全基于拦截器设计,如果去掉MVC中的拦截器,就变成了一个原生servlet应用。&&Nibiru Framework&Nibiru是一个Java服务器端开发框架,以方便模块化应用程序的创建为目标。它的特性包括:为不同的技术提供了一个抽象层,以避免耦合提供一些常用的共同服务组件比如:CRUDs,报表,工作流,事务管理,安全和国际化系统提供动态更新机制,以允许热插拔。实施有利于在一个结构化的方式解决问题的模式。不过要避免强制用户执行一个给定的解决方案。促进解耦模块之间的通信。避免推倒重来。创建抽象层,但尽可能使用现有的技术。其实现基于现有的许多技术,比如:OSGi, Vaadin, Spring和Hibernate

我要回帖

更多关于 myeclipse struct2 的文章

 

随机推荐