struts实在是太耀眼了,导致其他一些mvc框架被受冷落,连官方的jsf都没能取代struts。事实上,不少mvc框架有各自不少优点。
下面介绍一款轻量级mvc框架:Stripes
stripes非常轻,除了依赖commons-logging.jar外,本身只有一个jar包:stripes-1.5.7.jar
项目网址: http://www.stripesframework.org
下载地址:http://sourceforge.net/projects/stripes/files/stripes/Stripes%201.5.7/stripes-1.5.7-src.zip/download (含官方例子,很合适入门)
最新版本:1.5.7
特性:吸取了ruby on rails的约定大于配置的优点,在Stripes里看不到xml配置文件,自动完成Action的映射,辅之少量注解即可完成Action的Mapping,validation,ajax等特性。
stripes是怎样绑定action到对应的url的?
一。stripes的约定大于配置规则如下:
1.去掉包名含有www、web、stripes、action前面部分。
2. 去掉类名的Action、ActionBean
3. 把.替换为/ ,然后加上后缀 .action
例:net.sourceforge.stripes.examples.quickstart.CalculatorActionBean
-> examples.quickstart.CalculatorActionBean
-> examples.quickstart.Calculator
-> /examples/quickstart/Calculator.action
当然,也可以用注解annotation来绑定自己想定义的地址
比如在类的上面加上注解:
@UrlBinding("/user/login")
则对应的上下文地址是: /user/login.action
二。一个类多方法映射
在struts2里,一个类可以写多个方法,绑定不同的url和返回视图页,
在stripes里也可以有多个方法,而且更方便,支持一个表单,两个不同名称的提交按钮,这两个submit的name分别对应Action类里的两个方法,名称需一致。
比如:
表单
<form action="User.action"> username: <input type="text" name="username"/> password: <input type="text" name="password"/> <input type="submit" name="login" value="登录" /> <input type="submit" name="register" value="注册" /> <a href="User.action?list">已注册用户</a> </form>
Action类:
public UserAction implements ActionBean{ ... public Resolution login() { // dosomething(); } public Resolution register() { // dosomething(); } public Resolution list() { // dosomething(); } }
点击登录,则对应url为 User.action?login=, 执行login方法体里的代码。
点击注册,则对应url为 User.action?register=, 执行register方法体里的代码。
三。验证
通过@Validate注解来设置。
可参照官方例子,里面较全
四。web.xml的配置
<filter> <display-name>Stripes Filter</display-name> <filter-name>StripesFilter</filter-name> <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class> <init-param> <!-- 指定扫描Action的包路径 --> <param-name>ActionResolver.Packages</param-name> <param-value>com.jiayuan.stripes.demo.web.action</param-value> </init-param> <init-param> <!-- 扩展包,此处用于读取多个properties文件,默认只读取StripesResources --> <param-name>Extension.Packages</param-name> <param-value>stripes.extension</param-value> </init-param> <init-param> <!-- locale指定和编码指定 --> <param-name>LocalePicker.Locales</param-name> <param-value>zh_CN:UTF-8,en_US:UTF-8</param-value> </init-param> <init-param> <!-- 多个resourceBundles,多个resource,则用逗号分开 --> <param-name>ResourceBundles.BaseNames</param-name> <param-value>application</param-value> </init-param> </filter> <filter-mapping> <filter-name>StripesFilter</filter-name> <url-pattern>*.jsp</url-pattern> <dispatcher>REQUEST</dispatcher> </filter-mapping> <filter-mapping> <filter-name>StripesFilter</filter-name> <servlet-name>StripesDispatcher</servlet-name> <dispatcher>REQUEST</dispatcher> </filter-mapping> <servlet> <servlet-name>StripesDispatcher</servlet-name> <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>StripesDispatcher</servlet-name> <url-pattern>/dispatcher</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>StripesDispatcher</servlet-name> <url-pattern>/action/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>StripesDispatcher</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>
五。中文乱码问题
只需要在配stripes的filter时,初始参数LocalePicker.Locales配为zh_CN:UTF-8或zh_CN:GBK即可解决中文乱码问题。
六。文件上传
stripes里已经集成有上传模块,支持cos、commons-upload两种上传方式,
只需在对应的Action里申明一个
private FileBean upload; // .. 省略getter,setter
然后在需要保存文件的地方:
File file = new File(context.getServletContext().getRealPath("/upload/" + saveFileName)); upload.save(file);
即可上传文件到/upload目录下。
附demo
相关推荐
Stripes是一个Java Web框架,其... 我们鼓励您下载Stripes,浏览文档,尝试示例,并查看为什么Stripes被认为是最好的轻量级Java Web框架之一。 项目Wiki和文档: : JIRA(功能/缺陷): : Javadoc: : Taglib文档: :
Java Web层框架之比较—比较JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket.doc
恭喜您创建了一个新的Stripes UI应用程序模块! 请按照以下说明运行ui-rs并开始您的开发。 先决条件 为了查看和登录正在提供服务的平台,需要运行合适的Okapi后端。 如果您的应用还没有自己的后端模块, Vagrant框...
Stripes视图框架demo 资源可用性毋庸置疑 下载的童鞋给点辛苦分不要介意
和我们熟悉 Struts 1 和 Struts 2 类似,Stripes 同样是一种展示层框架,用于快速构建web程序。在使用Struts 1,WebWork 和 Struts 2 等框架的时候,通常需要大量额外的 XML 配置,当一个项目达到一定规模的的时候,...
和我们熟悉 Struts 1 和 Struts 2 类似,Stripes 同样是一种展示层框架,用于快速构建web程序。在使 用Struts 1,WebWork 和 Struts 2 等框架的时候,通常需要大量额外的 XML 配置,当一个项目达到 一定规模的的时候...
介绍Stripes 是一个工具包,用于构建可以运行 FOLIO UI 模块的单页 Web 应用程序。 UI 模块由组件组成,其中一些将连接到提供的后端服务。 每个模块都有一个“类型”,表示它在应用程序中的功能。 目前,唯一的...
stripes1.5.7+spring3.1.1+MyBatis3.1.1完整框架 本工程代码已完成了Oracle,MySQL,MSSQL2005三种数据库物理分页方言,并测试可用。 本代码集成了xheditor-1.2.1在线编辑器远程抓取图片功能。 集成了excel导入...
介绍这是一个React组件和实用程序函数库,可与一部分一起使用。组件类别这些是一般性的描述类别,它们指示组件所服务的用例的类型。 组件可以具有与之关联的多个类别。 类别描述结构体这些是有助于应用程序UI的常规...
Stripes is a new java web MVC framework.this document is helpful for useit
Stripes是一种新的简易的web框架势,本篇介绍在Stripes中下载excel表格
stripes入门,Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Java web框架。本文将介绍Stripes与其它如Struts之类基于动作的框架的区别和其提供的一些存在于Ruby on Rails之中的简单性。
包含文档~ 快速开发~ 快速布局页面~适用web开发~轻量级,体积小
我们鼓励您下载Stripes,浏览文档,尝试示例,并查看为什么Stripes被认为是最好的轻量级Java Web框架之一。 有关更多信息,请参见http://www.stripesframework.org/。 最新版本v1.6:...
指导条纹设计的概念-与条带有关的事物的术语条纹显影入门和新环境设置-更详细的概述 World-使用Stripes CLI为FOLIO创建一个hello world应用程序开发和测试指南-如何将现有应用程序迁移到Stripes框架v1.0 有关Stripes...
基于Stripes框架的Ajax应用与研究.pdf
宁静条纹一个 Java 库,可简化使用 Stripes 框架创建 RESTful 服务的过程。
Make developing web applications in Java easy...Make the Stripes ramp up time for a new developer less than 30 minutes Make it really easy to extend Stripes, without making you configure every last thing