锁定老帖子 主题:Java Web框架标准化必要性探讨
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-28
dengyin2000 写道 .
第四点没看明白. struts2 还需要调用 request.setAttribute("user", user); 吗??? 非,不是struts的代码, 该例子用来说明struts的好,普通的method scope的Action处理的不好 struts2不需要这样的代码 |
|
返回顶楼 | |
发表时间:2007-11-28
引用 代码没有依赖于任何(除Servlet规范)接口,也就意味着可以不依赖容器,任何容器如果任何认可这种做法,它是很容易就能实现支持(技术难度本身并不大)。 代码都需要在容器中运行,这不等于它依赖容器。我的Bo还需要在Spring IoC,或其他IoC中,这不代表它依赖IoC容器 不知道你在说什么逻辑。以下是你的代码: public class UserAction { private UserBo userBo; public void setUserBo(UserBo userBo) { this.userBo = userBo; } //获取一个指定用户id的用户信息 public String get(String id, HttpServletRequest request) { User user = this.userBo.loadUser(id); request.setAttribute("user", user); return "user_profile_info"; } } 请向大家解释一下,你的这个类没有依赖接口或者类,那你的HttpServletRequest是什么东西?请问,你用了什么很容易就能实现支持,来使你的这个类脱离了Web容器运行? 你所提到的东西,Struts2都能做,你说不是默认方式,需要很高深的技术,我实在是没有看出来高深在什么地方,全部在Struts2的Reference中有详细的说明,用Zero Configuration和Code Behind完全可以达到你的要求,Rest style Mapper可以完成资源映射,所有的功能只要稍稍改变配置就行。 这种讨论实在没有意义。钻牛角尖钻到极点。 |
|
返回顶楼 | |
发表时间:2007-11-28
唉,qieqie钻牛角尖了....
先要明白一句话,自由是建立在不自由的基础之上的。 pojo型的action看似很自由,其实却隐含了更多的规则,隐含的规则相对于现成的implement和extend,确是更加难以掌握。这样的框架,写给自己用可以,写给别人用还得让人家背好规则再开始。还是前面的话,新程序员你就算把接口都给他定好了,他还不一定能写对,这次连接口都没了,你期望他们能出什么像样的代码?? 维护上也会是自找麻烦,10个人写pojo就会有10个样,起名起的那更是五花八门,用拼音的,用英语的,还能有直接用中文的。你还真打算去掌握每个人的写代码的习惯??或许还是更“硬”点的框架能让人对手下更放心吧 所以,pojo型的框架,我对其前途并不看好...... |
|
返回顶楼 | |
发表时间:2007-11-28
downpour 写道 引用 代码没有依赖于任何(除Servlet规范)接口,也就意味着可以不依赖容器,任何容器如果任何认可这种做法,它是很容易就能实现支持(技术难度本身并不大)。 代码都需要在容器中运行,这不等于它依赖容器。我的Bo还需要在Spring IoC,或其他IoC中,这不代表它依赖IoC容器 不知道你在说什么逻辑。以下是你的代码: public class UserAction { private UserBo userBo; public void setUserBo(UserBo userBo) { this.userBo = userBo; } //获取一个指定用户id的用户信息 public String get(String id, HttpServletRequest request) { User user = this.userBo.loadUser(id); request.setAttribute("user", user); return "user_profile_info"; } } 请向大家解释一下,你的这个类没有依赖接口或者类,那你的HttpServletRequest是什么东西?请问,你用了什么很容易就能实现支持,来使你的这个类脱离了Web容器运行? 其他的回复我就不看了,这种讨论实在没有意义。 市面上的 MockHttpServletRequest等可以使Action脱离容器进行测试。 没有说Action要脱离Servlet容器,Action运行总是脱离不了Servlet容器的,但(如果可以的话)不应该让Action过多依赖具体web框架的实现。 我的表述是:也让Action只依赖标准的Servlet吧,因为Servlet的类很多人做了Mock套件了,很容易脱离容器测试。让后使Action够pure,以可轻松编写 |
|
返回顶楼 | |
发表时间:2007-11-28
timerri 写道 唉,qieqie钻牛角尖了....
先要明白一句话,自由是建立在不自由的基础之上的。 pojo型的action看似很自由,其实却隐含了更多的规则,隐含的规则相对于现成的implement和extend,确是更加难以掌握。这样的框架,写给自己用可以,写给别人用还得让人家背好规则再开始。还是前面的话,新程序员你就算把接口都给他定好了,他还不一定能写对,这次连接口都没了,你期望他们能出什么像样的代码?? 维护上也会是自找麻烦,10个人写pojo就会有10个样,起名起的那更是五花八门,用拼音的,用英语的,还能有直接用中文的。你还真打算去掌握每个人的写代码的习惯??或许还是更“硬”点的框架能让人对手下更放心吧 所以,pojo型的框架,我对其前途并不看好...... pojo=java,以上问题同样存在java之中 |
|
返回顶楼 | |
发表时间:2007-11-28
Qieqie 写道 市面上的 MockHttpServletRequest等可以使Action脱离容器进行测试。 没有说Action要脱离Servlet容器,Action运行总是脱离不了Servlet容器的,但(如果可以的话)不应该让Action过多依赖具体web框架的实现。 我的表述是:也让Action只依赖标准的Servlet吧,因为Servlet的类很多人做了Mock套件了,很容易脱离容器测试。让后使Action够pure,以可轻松编写 早说了,不喜欢现有的框架,就自己按照自己喜欢的方式写,没有人强迫你依赖Struts的jar包。但是你不要强调现在的框架这个不能做那个不能做。能不能做是框架的事情,用不用是你的事情。更何况实在不是人家不能做,而是你喜欢钻牛角尖。 |
|
返回顶楼 | |
发表时间:2007-11-28
Qieqie 写道 timerri 写道 唉,qieqie钻牛角尖了....
先要明白一句话,自由是建立在不自由的基础之上的。 pojo型的action看似很自由,其实却隐含了更多的规则,隐含的规则相对于现成的implement和extend,确是更加难以掌握。这样的框架,写给自己用可以,写给别人用还得让人家背好规则再开始。还是前面的话,新程序员你就算把接口都给他定好了,他还不一定能写对,这次连接口都没了,你期望他们能出什么像样的代码?? 维护上也会是自找麻烦,10个人写pojo就会有10个样,起名起的那更是五花八门,用拼音的,用英语的,还能有直接用中文的。你还真打算去掌握每个人的写代码的习惯??或许还是更“硬”点的框架能让人对手下更放心吧 所以,pojo型的框架,我对其前途并不看好...... pojo=java,以上问题同样存在java之中 没错,所以我经常用c写本地代码解决性能问题,还不得不研究jvm的具体实现.....都是被java的隐含规则给害的。 不过,java在实现方面的接口可是非常的"硬"了,j2ee基本上就是一堆你没办法改的接口。java就像强 奸,既然不能反抗,那就只有享受了.... |
|
返回顶楼 | |
发表时间:2007-11-28
downpour 写道 Qieqie 写道 市面上的 MockHttpServletRequest等可以使Action脱离容器进行测试。 没有说Action要脱离Servlet容器,Action运行总是脱离不了Servlet容器的,但(如果可以的话)不应该让Action过多依赖具体web框架的实现。 我的表述是:也让Action只依赖标准的Servlet吧,因为Servlet的类很多人做了Mock套件了,很容易脱离容器测试。让后使Action够pure,以可轻松编写 早说了,不喜欢现有的框架,就自己按照自己喜欢的方式写,没有人强迫你依赖Struts的jar包。但是你不要强调现在的框架这个不能做那个不能做。能不能做是框架的事情,用不用是你的事情。更何况实在不是人家不能做,而是你喜欢钻牛角尖。 1、你真是没有贡献精神。当你看到不爽的开发方式时为什么仅仅是“不喜欢现有的框架,就自己按照自己喜欢的方式写”, 是否在做这件事的时候,可以表述出来让人讨论,是否可以改进。 2、>更何况实在不是人家不能做,而是你喜欢钻牛角尖。 我问你,有什么事现在的程序不能做?都可以做,关键是:简单不简单,方便不方便,傻瓜不傻瓜 当你花上高超的技术耗动一个物件时,别人轻轻一挑就起来,你的感觉怎么样? 为什么Java这么让人头疼,我们做何思考,我们可以做些什么? |
|
返回顶楼 | |
发表时间:2007-11-28
public class UserAction { private UserBo userBo; public void setUserBo(UserBo userBo) { this.userBo = userBo; } public String get(String id, HttpServletRequest request) { User user = this.userBo.loadUser(id); request.setAttribute("user", user); return "user_profile_info"; } } 和 import com.opensymphony.xwork.Action; public class HelloWebWorldAction implements Action { private User user; private UserBo userBo; public void setUserBo(UserBo userBo) { this.userBo = userBo; } public User getUser() { return user; } public String execute() throws Exception { user = this.userBo.loadUser(id); return SUCCESS; } } 哪一个简单? 这是你需要的POJO Action? |
|
返回顶楼 | |
发表时间:2007-11-28
LS的,达到“简单”的目标,一个是Action要pure化,以及还有其他方面的要求,请回头再阅读一下。
就只从Action的考虑,Struts2下载后就可以如下开发程序? public class UserAction { public String get(User user){...} public String post(User user){...} public String delete(String id){...} public String put(User user) public String friends(String id){...} } 一个Action的功能能这么丰富 除了编写Action,你不需要N多配置才能把Struts2跑起来? Struts2简单吗? |
|
返回顶楼 | |