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

轻量级mvc框架之:stripes (一、约定大于配置)

阅读更多

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

0
1
分享到:
评论
4 楼 freezingsky 2013-06-05  
约定大于配置。前提是,得看一份很长的约定。。。
3 楼 jayung 2013-06-05  
hb214 写道
直接springMVC多好

Spring非常优秀,Spring已经不是一个简单的框架了,已经形成了一个社区生态圈了,对于复杂的依赖逻辑等都有很好的解决方案,但不是所有的项目都适合用spring,对于那些业务逻辑较为简单、强调性能、对引用的jar多少有要求,且内存有限制的中小型应用,Stripes在64M内存的条件,可以跑得很好,特别是使用虚拟机等硬件条件有一定的限制,相比Stripes,Spring还是有些重了,所以本文也主要强调Stripes的轻、快、简单。
2 楼 hb214 2013-06-05  
直接springMVC多好
1 楼 wuchsh2013 2013-06-05  
缘来这就是所谓的约定大于配置哦。。。

相关推荐

    JAVA轻量级的MVC框架应用实例.7z

    标题“JAVA轻量级的MVC框架应用实例.7z”表明,我们将讨论的是Java环境下的轻量级MVC框架的应用实践。这里的“轻量级”通常指的是这些框架对系统资源需求较低,易于学习和使用,适合小型到中型项目。 描述中的内容...

    JAVA轻量级的MVC框架应用实例.zip

    在IT行业中,Java轻量级的MVC框架是开发者们常用的一种设计模式,它使得应用程序的结构更加清晰,便于维护和扩展。本实例主要探讨了如何在Java环境中应用轻量级的MVC框架来构建高效、可复用的代码。 MVC(Model-...

    jsp网页布局利器框架stripes-1.5.6

    1. "轻量级mvc框架之:stripes (一、约定大于配置).doc" - 这可能是一个关于Stripes的教程或技术文章,特别强调了"约定大于配置"的设计原则。这是许多现代框架采用的一种设计理念,它减少了开发者需要手动配置的...

    Stripes视图框架demo

    Stripes视图框架是一款轻量级的Java Web框架,它为开发者提供了构建高效、可维护的Web应用程序的工具。这个“Stripes视图框架demo”是用于演示如何使用Stripes来开发Web应用的一个实例,可以帮助初学者快速理解和...

    stripes入门

    1. **简化配置**:Stripes 采用注解和约定优于配置的原则,这意味着开发者无需编写大量的 XML 配置文件,而是通过在代码中添加注解来完成配置工作。 2. **易于集成**:Stripes 可以轻松地与其他 Java 技术栈集成,...

    stripes mvc pdf

    Stripes是一款新兴的Java Web MVC(Model-View-Controller)框架,它以其简洁、高效和易用的特点受到开发者的青睐。该框架的目标是简化Java Web应用程序的开发过程,并使其更加有趣和高效。Stripes的设计理念之一...

    基于Stripes框架的Ajax应用与研究.pdf

    3. Stripes框架的特点:Stripes框架是一种基于MVC模式的轻量级框架,具有低配置文件少、学习周期短的特点,逐渐成为Java开发者的宠儿。 4. Stripes框架在Ajax中的应用:Stripes框架可以和Ajax技术结合,实现快速...

    stripes-1.5.7-src.zip

    Stripes是一个轻量级的Java Web框架,它简化了创建动态、交互式的Web应用程序的过程。这个"stripes-1.5.7-src.zip"文件包含了Stripes框架的源代码版本1.5.7,这对于开发者来说是宝贵的资源,因为可以直接查看和理解...

    轻量级JAVA EE企业应用实战随书光盘\codes\05

    【标题】"轻量级JAVA EE企业应用实战随书光盘\codes\05" 提供的是关于JAVA EE企业级应用开发的一个实践案例,重点在于轻量级框架的使用。这个部分可能涉及到如何在实际项目中高效、简洁地构建JAVA EE应用程序。 ...

    Stripes1.4.3

    7. **轻量级和可扩展**:Stripes设计小巧,不依赖大量的外部库,这使得它能够快速集成到现有的项目中。同时,它支持插件扩展,可以方便地添加新的功能。 8. **异常处理**:Stripes提供了统一的异常处理机制,使得...

    stripes:Stripes是一个Java框架,旨在使Java中基于ServletJSP的Web开发尽可能简单,直观和简单。 这是条纹,不吸

    Stripes是一个Java Web框架,其... 我们鼓励您下载Stripes,浏览文档,尝试示例,并查看为什么Stripes被认为是最好的轻量级Java Web框架之一。 项目Wiki和文档: : JIRA(功能/缺陷): : Javadoc: : Taglib文档: :

    Java Web层框架之比较—比较JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket.doc

    Stripes框架的一个显著特点是无需XML配置文件,这使得学习曲线相对较平缓。它有良好的文档和热情的社区,但社区规模较小,活跃度较低,ActionBean中的URL通常是硬编码的,这可能限制了灵活性。 **Struts 2** Struts...

    stripes包,内有例子程序和StripesResources.properties

    Stripes是一个轻量级的Java Web框架,它简化了创建动态、交互式的Web应用程序的过程。这个压缩包"stripes-1.5.6"包含了Stripes框架的一个版本以及相关的示例程序和配置文件,这对于学习和理解Stripes的工作原理非常...

    Stripes 快速入门 pdf 中文版 下载

    Stripes是一个轻量级的Java Web应用框架,其设计目标是简化Java web应用的开发过程,并提高开发效率。与Struts 1和Struts 2等早期流行的框架不同,Stripes采用了更为现代的开发模式和技术,减少了对XML配置的依赖,...

    stripes英文文档(全部)

    Stripes 是一款用于快速开发Web程序的展示层框架,它的设计旨在简化Java Web应用开发流程。在介绍Stripes之前,我们需要了解它与传统框架(如 Struts 1、WebWork 和 Struts 2)的不同之处。传统框架通常要求开发者...

    ui-rs:STRIPES应用程序提供资源共享的前端

    恭喜您创建了一个新的Stripes UI应用程序模块! 请按照以下说明运行ui-rs并开始您的开发。 先决条件 为了查看和登录正在提供服务的平台,需要运行合适的Okapi后端。 如果您的应用还没有自己的后端模块, Vagrant框...

    JAVA框架对比(author:Matt raible)

    描述:本资源由Matt Raible提供,深入比较了六个主要的Java Web框架:JSF、Spring MVC、Stripes、Struts2、Tapestry和Wicket,旨在帮助开发者根据项目需求选择最适合的框架。 知识点: 1. **JSF (JavaServer Faces...

Global site tag (gtag.js) - Google Analytics