我也一直觉得jsp+servlet+javabean好一些,简单清晰,就是要人为约束好mvc的分层,至于fombean,我觉得用bean(request),完全可以自己写一下,并没有增加多少工作量,却比formbean要灵活的多,可能还高效一些。
解决方案 »
- 怎样能查到数据库表的所有数据(包括某列为""字符串的数据)
- JavaScript的一个简单问题 会的过来看看
- 怎么样用JFreeChart来实现table表格
- 在服务器端查询数据 供客户端下载 用jsp 程序怎么解决?急求?
- 急!!
- 请熟悉网页各种语言编码的高人们来看看,急~~~~~以前那个帖子忘了给分了,不好意思
- 关于axis发布的webservice调用本server上的dll的问题--十万火急
- 谁能谈谈corba和webservice的异同?
- jabber与电子邮件的结合反垃圾邮件的方案设想。
- 使用struts2+hibernate+oracle做一个增删改查的功能
- 求助:myeclipse5.0中 Hibernate3.1 的事务问题
- 打算看Tomcat源代码,请研究过的朋友给点建议,如何下手比较好。
对于J2EE Container/J2EE Application Server的动态重载,我去年开始研究,据java版内其他网友说,WebLogic, Resin, Websphere都有。惟独Tomcat没有,所以我后来修改了Tomcat,写了个资源管理器模块,所以你可以考虑更换J2EE应用服务器或者看我的blog文章:http://blog.csdn.net/cm4ever/archive/2006/04/26/678539.aspx2.对于动态表单,据我所知,国内很多公司都在做的,包括我。只是由于这方面的技术也是非常复杂的,所以一直没有形成业界的规范。而做出来的公司基本也不公开而作为公司商业制胜的法宝之一。当然MS,SUN,IBM也肯定没做这种东西。所以你想找免费,开放的产品基本是不可能。
http://forum.javaeye.com/viewtopic.php?t=11726&highlight=%C0%AD%C4%A3%CA%BD
这就象你只使用tomcat,而不知道weblogic,websphere等有动态重载这种功能,实际上是限于自己的认知而不是工具的问题。所以你即使换了其他的框架、平台还是有这些问题,所以关键不是你换什么工具,而是你采用的工具中有你需要的什么特性,不要因为别人说好而去用他,要在整个开发平台的高度去看待工具的采用。实际上,开发平台的整体架构应该是公司架构设计师所定制。我从你发表的话判断虽然你开发的系统不小,但却没有开发体系的定制者,而如果是你做的,我只能说你不合格。
对于成熟的系统,页面表单无法固定,因为数据库的指标和字段,都交给用户自己去维护,而且是要通过一个系统的后面来进行维护,而不是用户要加一个指标都得通过程序员来添加,而且有时候,对于工作流引擎来说,还需要再控制下一步系统工作的转向,还不用说第三方开发工具等的问题。
所以,按实际工作的例子,struts无法解决这些实际工作,技术也得满足实际的业务需求,如果不考虑成本、效率,这样的架构师更是不合格。
cm4ever 想驳倒我,却拿不出推翻我的观点的论据来,不过,欢迎您来拍砖。谢谢 cm4ever朋友。
看样子你们的设计又问题啊,要多种action结合使用
mysticality,你说的
或者你在action中得到你想跳转的字段存入request,然后forward到一个含有跳转脚本的jsp,jsp拿到你存入的request内容,实现动态跳转
呵呵,这还真是个好办法啊。
不过,对于动态表单呢?如果解决呢?
love620 朋友:
你可以在struts-config.xml里面配置动态的formbean,即使要更改,也比较方便更改。
动态表单?还没听说过有这样的使用方法。
一:
[每一次转到展示层,相信大多数都是直接转到jsp,而涉及到转向,需要配置
forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录
、文件变更,需要重新修改forward]
一般来说,项目开始的时候,类包名,jsp文件的存放路径都已经固定死的.如果说不能
确定,那只有一点,你们的前期设计不够完善.如果文件变更,只需要struts-config.xml中
把jsp文件名改改就可以,如果你动过forward的name,当前需要在action修改.如果没有动过,
根本就不需要重新修改.换过来说,如果有10个jsp,你不用struts你还是必须在jsp里转发10次,
这时候如果jsp的文件名动过,你也必须找到相关的jsp文件作修改。试想想,你是愿意在一个文件里修改,
还是愿意在10个不同的文件里修改.
[
注意,每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器,如果业务变更复杂频繁的系统,这样的操作简单不可想象。现在就是这样,几十上百个人同时在线使用我们的系统,大家可以想象一下,我的烦恼有多大]
这我必须承认,确实是这样。但是,如果你jsp+servlet+javabean的方式,如果你把业务处理
内容放在javabean里,上面的操作也是必不可少的.当然,你也可以把代码放在jsp里,这样不需要重启服务,
但是,你想过它的维护量吗?系统越大,你的维护量是呈几何指数增长.
二:页面的表单是不固定的.该怎么去做?当然,仅仅用struts确实是不好实现.这时候应该想到变通,
比如说,结合velocity..举个例子说明:
人员基本信息:姓名、性别、出生年月
数据库的页面表单肯定是这样的:姓名:是一个普通的文本框.性别是一个下拉框,下面的内容是男和女.
出生年月是一个日期选择框.
我不知道大家时怎么去生成html文件,是否用out.println?或是在服务器端直接生成html?这些方法都是可行的.
但肯定不是最好的.我自已的做法是:为每一种类型的控件定义一个模板, 这样生成html页面的时候,只需要替换
一些东东而已.
这时候,页面的取值就不好再通过formbean的方式,有两个方法,一是直接在action里使用request.getParameter().
或是可以调用struts的api,直接将request的值放入到map或者是javabean里.三:关于页面这个东东,我也感觉这确实是struts的一个弱势.我们一般的做法是美工就直接画页面,只生成html语言.
程序员需要将页面控件转换成taglib.
这对没用过struts的程序员确实有点高,但是对工作两年以上的java程序员,应该是没有难度.上面这些只是顺口说说,只针对技术,不针对人.说得不好,尽管提!
1 forward 配置是有些麻烦但是那可是集中配置。出了问题。找配置文件就可以了。总比你在又有java代码。又有html标签的页面上找到你想要的link方便吧另外如果变更指向的是forwordAction的话,修改完配置文件之后所有页面引用该link就会全部适用.维护起来绝对比你直接跳jsp要方便.
2 页面表单变更问题,无非你要增加属性.但问题是你的数据模型有没有这个字段,如果有那么你的pojo也应该有这些属性.只需要增加相应form属性就可以了再修改v层就可以了.如果没有的话.那么你需要修改v层.和m层.而且还有struct标签.在v层照相关的属性很方便的.
3 struct标签并不是不好.而是你不会用有好多标签带的功能能搞省好多js代码.比如logic,和html
总结:
哥们就是觉得开发起来麻烦.但是你没有考虑到以后的复用性和扩展性.总想不费什么力气就把系统就座出来.思想是想当初做delphi一样.托出界面后台添逻辑但是mvc你也总应该看一下吧你把东西全扔到jsp上.jsp又不能想java代码那样排版.看的眼花缭乱.本人做过jsp+javabean的一个维护深受其害.请拿出说服性的论证,不要发一些开发上的牢骚.这样不利于成长.看来哥们刚刚出道吧.什么一个大型企业的人力资源管理系统,整个系统管理的人员大约
有1.6万人左右,系统基于jboss+oracle,java技术框架为struts,移动的数据量应该你的项目大吧.数据量和功能就不提了.也用structs,跑得也挺好呀,要是让楼主开发,项目是不是要失败呀..
你的烦恼是技术不够 ,应该从技术上多下功夫.实在不想下功夫还是转行作老板吧
......
--------------------------
这个不是问题,struts2.0以后就允许多个配置文件了,即使一个配置文件,可以使用cvs这样的版本控制工具,也不是问题。
修改了配置文件,必须要重起,除非你修改服务器的行为——自动检测你的配置文件的变化情况。
变通的法子也是有的,比如你修改了一个配置文件,然后修改一个class,这样让服务器重启,但是问题是,一般的系统产品环境下是不会允许这么做的。二、当页面表单需要自动变化或者频繁变化时。
......
---------------------------
这个不是什么好的经验,说实话,我宁愿将这一切归咎于需求人员的能力缺陷。我们不应该做着这样的配置去迎合需求的不稳定。
即使是修改不可避免,我还是倾向于修改源文件,重新编译,重新发布。
即使不考虑将字段放入数据库带来的系统本身的问题,这样做(将表的字段放入数据库)对于实施人员是一种灾难。这是经验,教训惨痛。
也许这么说有些武断,但是我从业也有几年了,我确实没有看到几个合格的需求分析人员——都是mp精,干实事一点用都没有。三、要引入struts包,引入strtus标签库......
-----------------------------
我的习惯是:taglib少用,尽可能的不用。主要是省心。
其实页面出现两三行简单的java代码天也不会塌下来。题外话:
struts不过是展现层的框架,如果真的是个大系统,别的地方的力气应该更大一些,于是struts是否合适就显得不那么重要。
为什么ASP.NET可以做得这么方便啊
谁能告诉我?
毕竟struts是一个通用的,想包括所有情况,所以包含了很多多余的东西,不一定适合自己。
自己写的框架可以很灵活,跟自己需求很接近,用起来也顺手。
不过流行,你有什么办法,你说不好,一堆人来PK你。
》》》》》其实我写一些简单的method(request)就完全可以实现这个功能了。
》》》我喜欢和大家讨论,一起讨论一起进步嘛。
程序员
能够在短期内(1星期)了解一个新工具的经典使用模式,一般就是看它的example/sample目录下的源代码,作为补充,可以阅读最佳实践(best practice)之类的资料。
设计师
除了上面这点,还得能够从例子和接口文档中反推出它的架构,最好可以阅读源代码来验证。推荐用debug来辅助。
设计师要达到这种水平,才能拿出足够的证据,说服公司高层,让他们知道这个工具确实不能满足业务需求,要么改它,要么自己写。另外,对于struts,我认为它的action设计比较出色,但他的formBean比较笨重,仅能够解决固定页面的问题,所以我们项目中没用过formBean,也没用过它的taglib。
-----------------------------------
我觉得在配置文件里做,总比要做到代码里强。
另外Tomcat部署问题由来已久,不过可以在管理页面reload,不必重新启动tomcat,这个速度还能忍受。二、当页面表单需要自动变化或者频繁变化时。
-------------------------------------
我觉得formbean不适合这种情况,你可以在formbean里用map,同样可以实现动态表单,
不过在formbean里用map,和不用formbean也没什么两样了,体现不出formbean的优点。
三、要引入struts包,引入strtus标签库,现到现为止,我们有所见即所得的
dreamwaver、frontpage、webeditor,对于繁杂页面的设计,是非常方便的,而对于
struts标签库,没有哪一种软件能够支持
-------------------------------------
这个我到觉得无所谓,可以先建页面模板,后加标签。
还有标签要少用。
不要对一个通用框架要求太高,如果有特殊要求,最好自己建一个专用框架。
我认为struts适合作教材
而不是适合用于实际项目我研究了几个月的struts,最终没有在任何项目中用它,作为一个可以控制项目框架得人
那就应该事先考虑好
那你为什么选择用struts呢 很明显 跟着别人的走
我发现现在的java有些可怕,很多新人 不知道用什么
可能基本的jsp,jdbc都写不好,但已经在用struts spring hibernate了为什么用?因为大家都在讲,讲的人又有多少是传声筒
我们用它的action机制,只用(我们认为)它出色之处。
这是对它详细分析之后的决定。你明显没阅读我前面的段落,我说过工具选择是在项目开始之前,鄙视你这种断章取义的行为。
2, struts 可以大大简化action配置,对应jsp太多那大概是你设计的问题
3, struts 自带的标签库是比较差劲,但是可以替代的也有很多,推荐在表示层使用 jstl