论坛首页 Java企业应用论坛

Java Web框架标准化必要性探讨

浏览 10034 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-11-28  
dengyin2000 写道
.

第四点没看明白.   struts2  还需要调用 request.setAttribute("user", user); 吗???



非,不是struts的代码,
该例子用来说明struts的好,普通的method scope的Action处理的不好
struts2不需要这样的代码
0 请登录后投票
   发表时间: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可以完成资源映射,所有的功能只要稍稍改变配置就行。

这种讨论实在没有意义。钻牛角尖钻到极点。
0 请登录后投票
   发表时间:2007-11-28  
唉,qieqie钻牛角尖了....

先要明白一句话,自由是建立在不自由的基础之上的。

pojo型的action看似很自由,其实却隐含了更多的规则,隐含的规则相对于现成的implement和extend,确是更加难以掌握。这样的框架,写给自己用可以,写给别人用还得让人家背好规则再开始。还是前面的话,新程序员你就算把接口都给他定好了,他还不一定能写对,这次连接口都没了,你期望他们能出什么像样的代码??
维护上也会是自找麻烦,10个人写pojo就会有10个样,起名起的那更是五花八门,用拼音的,用英语的,还能有直接用中文的。你还真打算去掌握每个人的写代码的习惯??或许还是更“硬”点的框架能让人对手下更放心吧

所以,pojo型的框架,我对其前途并不看好......

0 请登录后投票
   发表时间: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,以可轻松编写
0 请登录后投票
   发表时间:2007-11-28  
timerri 写道
唉,qieqie钻牛角尖了....

先要明白一句话,自由是建立在不自由的基础之上的。

pojo型的action看似很自由,其实却隐含了更多的规则,隐含的规则相对于现成的implement和extend,确是更加难以掌握。这样的框架,写给自己用可以,写给别人用还得让人家背好规则再开始。还是前面的话,新程序员你就算把接口都给他定好了,他还不一定能写对,这次连接口都没了,你期望他们能出什么像样的代码??
维护上也会是自找麻烦,10个人写pojo就会有10个样,起名起的那更是五花八门,用拼音的,用英语的,还能有直接用中文的。你还真打算去掌握每个人的写代码的习惯??或许还是更“硬”点的框架能让人对手下更放心吧

所以,pojo型的框架,我对其前途并不看好......



pojo=java,以上问题同样存在java之中
0 请登录后投票
   发表时间:2007-11-28  
Qieqie 写道

市面上的 MockHttpServletRequest等可以使Action脱离容器进行测试。

没有说Action要脱离Servlet容器,Action运行总是脱离不了Servlet容器的,但(如果可以的话)不应该让Action过多依赖具体web框架的实现。
我的表述是:也让Action只依赖标准的Servlet吧,因为Servlet的类很多人做了Mock套件了,很容易脱离容器测试。让后使Action够pure,以可轻松编写


早说了,不喜欢现有的框架,就自己按照自己喜欢的方式写,没有人强迫你依赖Struts的jar包。但是你不要强调现在的框架这个不能做那个不能做。能不能做是框架的事情,用不用是你的事情。更何况实在不是人家不能做,而是你喜欢钻牛角尖。
0 请登录后投票
   发表时间:2007-11-28  
Qieqie 写道
timerri 写道
唉,qieqie钻牛角尖了....

先要明白一句话,自由是建立在不自由的基础之上的。

pojo型的action看似很自由,其实却隐含了更多的规则,隐含的规则相对于现成的implement和extend,确是更加难以掌握。这样的框架,写给自己用可以,写给别人用还得让人家背好规则再开始。还是前面的话,新程序员你就算把接口都给他定好了,他还不一定能写对,这次连接口都没了,你期望他们能出什么像样的代码??
维护上也会是自找麻烦,10个人写pojo就会有10个样,起名起的那更是五花八门,用拼音的,用英语的,还能有直接用中文的。你还真打算去掌握每个人的写代码的习惯??或许还是更“硬”点的框架能让人对手下更放心吧

所以,pojo型的框架,我对其前途并不看好......



pojo=java,以上问题同样存在java之中


没错,所以我经常用c写本地代码解决性能问题,还不得不研究jvm的具体实现.....都是被java的隐含规则给害的。

不过,java在实现方面的接口可是非常的"硬"了,j2ee基本上就是一堆你没办法改的接口。java就像强 奸,既然不能反抗,那就只有享受了....
0 请登录后投票
   发表时间:2007-11-28  
downpour 写道
Qieqie 写道

市面上的 MockHttpServletRequest等可以使Action脱离容器进行测试。

没有说Action要脱离Servlet容器,Action运行总是脱离不了Servlet容器的,但(如果可以的话)不应该让Action过多依赖具体web框架的实现。
我的表述是:也让Action只依赖标准的Servlet吧,因为Servlet的类很多人做了Mock套件了,很容易脱离容器测试。让后使Action够pure,以可轻松编写


早说了,不喜欢现有的框架,就自己按照自己喜欢的方式写,没有人强迫你依赖Struts的jar包。但是你不要强调现在的框架这个不能做那个不能做。能不能做是框架的事情,用不用是你的事情。更何况实在不是人家不能做,而是你喜欢钻牛角尖。



1、你真是没有贡献精神。当你看到不爽的开发方式时为什么仅仅是“不喜欢现有的框架,就自己按照自己喜欢的方式写”,
是否在做这件事的时候,可以表述出来让人讨论,是否可以改进。

2、>更何况实在不是人家不能做,而是你喜欢钻牛角尖。
我问你,有什么事现在的程序不能做?都可以做,关键是:简单不简单,方便不方便,傻瓜不傻瓜

当你花上高超的技术耗动一个物件时,别人轻轻一挑就起来,你的感觉怎么样?
为什么Java这么让人头疼,我们做何思考,我们可以做些什么?


0 请登录后投票
   发表时间: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?
0 请登录后投票
   发表时间: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简单吗?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics