精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-03-24
作为我这样的背景: 1对Servlet规范比较了解 2对于Java语言比较熟悉 3对于标签库可以自定义 4对于JSTL也能熟练应用 5对于请求到POJO对象的自动封装能够代码实现 到底需要什么样的一个框架呢? 我觉得越简单越好,简单到JavaBean+Servlet+Jsp 上述模式的问题在于什么呢? 配置太多,几乎一个逻辑对应一个Servlet 于是可以创建一个DispatcherServlet, 里面可以有多个方法,对于不同的请求URL自动调用不同的方法 类似于Struts的DispatcherAction 但是即使这样,由于不同的逻辑通常是按照业务分组的,这样通常也得一个业务对应一个Servlet 还是配置比较麻烦,于是便要学着Struts,由一个Servlet进行请求分发的统筹管理 这样子呢,咋一看不就演化成了Strtus了么? 其实不然,Struts配置太复杂,一个action里面有多个方法的话,还需要传递一个参数进行区分 我需要的理想的状态是,写好一个类 不需要过多的配置就能直接将请求路径映射到当前类的方法上 例如 public class LoginAction { public String login(HttpServletRequest request, HttpServletResponse response) { return "login"; } public String logout(HttpServletRequest request, HttpServletResponse response) { return "welcome"; } } 当我请求/loginaction/login时,将自动调用LoginAction.login()方法 而请求/loginaction/logout时,自动调用LoginAction.logout()方法 这样完全免配置不好么? 什么,需要指定不同的url路径?不想将方法名暴露给客户?不同的请求URL想调用相同的处理方法? 这样的话,我们可以使用注解进行覆盖默认行为 @RequestURL({"/loginaction","logoutaction"}) public class LoginAction { @RequestMethod({"login","ohtersname"}) public String login(HttpServletRequest request, HttpServletResponse response) { return "login"; } @RequestMethod({"logout","ohtersname"}) public String logout(HttpServletRequest request, HttpServletResponse response) { return "welcome"; } } 通过以上方法我们不但可以改变默认的映射,还可以指定多个映射,同时避免了使用 XxxAction.action?method=login之类的参数形式,因为这样,和业务相关的参数就不能包含method字段 这样对于action的配置就无比简单了 <actions> <action class=""/> <action class=""/> </actions> 当前,启动了自动扫描程序,并且指定匹配模式,那么连action都不需要配置了 例如,classPattern="com.nianien.*.*Action"; 那么自动获取com.nianein包以及子包下面的所有以Action结尾的类,自动创建映射,这是多么简单啊~ 当前,我们还可以同样的方法实现拦截器的免配置,实现返回结果的自动映射. 去繁从简,拒绝冗余的配置,提高开发效率,有没有人有过我类似的想法? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-03-24
spring mvc
|
|
返回顶楼 | |
发表时间:2011-03-24
licg1234 写道 spring mvc
Spring不需要配置么?Spring的规则更复杂,事无巨细,罗哩罗嗦~~~~ |
|
返回顶楼 | |
发表时间:2011-03-24
最后修改:2011-03-24
看我写的MVC
看我blog里的JStore Desktop后端代码。 简单,其实就是这样设计——可以说在简单性、性能均衡、灵活性、适应场景几方面来说,我写的那个没有几个框架能比它好了 |
|
返回顶楼 | |
发表时间:2011-03-25
我做的给企业应用专用的框架,比你这更简单,配置文件 menu.xml 即是 action 配置,也是左侧菜单树结构。
|
|
返回顶楼 | |
发表时间:2011-03-25
楼主所说 感觉和REST-ful架构差不多的东西,你可以看看jersey的源码,通过在类或方法上加入@Path("/login"),@Path("/logout") 这样的标签,来定位UI上的Request到哪一个类的方法上去
|
|
返回顶楼 | |
发表时间:2011-03-25
liuyar 写道 我做的给企业应用专用的框架,比你这更简单,配置文件 menu.xml 即是 action 配置,也是左侧菜单树结构。
我的意思是action默认是不需要配置的,除非你有特殊需求~~~ |
|
返回顶楼 | |
发表时间:2011-03-25
perryzheng 写道 楼主所说 感觉和REST-ful架构差不多的东西,你可以看看jersey的源码,通过在类或方法上加入@Path("/login"),@Path("/logout") 这样的标签,来定位UI上的Request到哪一个类的方法上去
学习过一点Rest的,主要是目前还没有形成绝对主流的Server实现~所以只能想用Servlet实现类rest风格的框架 |
|
返回顶楼 | |
发表时间:2011-03-25
请楼主看基于annotation的Spring3 MVC
|
|
返回顶楼 | |
发表时间:2011-03-25
弱弱的回答一下,struts不是有零配置的功能吗?
|
|
返回顶楼 | |