JavaBean & Struts的选择
现在公司的项目是基于Struts框架开发的,ORM框架用的hibernate
现在在一个页面出现了争议,这个页面是这样的:是一个分站页面,里面显示很多信息,例如:订单信息,日记信息,票价信息,新闻摘要等等信息(或者称之为模块?),这个页面类似与MSN那样的页面,每个小模块需要读取相应的数据库信息,本来是很容易的事,就是“JSP-ACTION-JSP”就 哦了,对应传出N个“参数”JSP页面一接收显示,可以现在的问题是,技术总监要求这个JSP页面就不用ACTION跳转过来,在JSP页面内用JAVABEAN做,然后显示用STRUTS标签,这样页面也不会出现<% ...... %>这种页面代码?
问题:我接触JAVA时间才半年多,已经有点习惯STRUTS的架设思想,跳转就用ACTION是理所当然的事情,突然他要求这个页面不用ACTION我很别扭,我可以用JAVABEAN做,但我想知道用JAVABEAN这个架设好不,甚至可行不,我现在觉得不好(我的观点),但不能说出来有效,有信服力的理由让人放弃这种架设想法.
补充:JAVABEAN是可以做很多事情,但现在情况是这样的,JAVABEAN做完了可以返回一个值,但STRUTS标签接收的是,request.setAttribute传出来的东西,或者说处理一个request对象?STRUTS标签可以处理JAVABEAN返回的值么?怎么处理?是不是一定要在JSP页面内嵌入<% ....... %> java代码才可以实现?
PS:补充问题不是重点,嘿嘿,项目需求做完了,自己可以研究:)请驳议我的观点,告诉一个放弃,或者维持我观点的有信服力的理由,<form:form commandName="command" name="cmForm" action="/cm/loginproc.htm"> <form:input path="username"/> <spring:bind path="command.password"> <input name="password" value='<c:out value="${status.value}"/>'> <c:out value="${status.errorMessage}"/> </spring:bind> <spring:bind path="command.tokennumber"> <input name="tokennumber" value='<c:out value="${status.value}"/>'> <c:out value="${status.errorMessage}"/> </spring:bind> <form:select path="testSelect"> <form:option value="-" label="--Please Select"/> <form:options items="${testList}" itemValue="code" itemLabel="name"/> </form:select> <form:checkbox path="testCheckBox"/> <form:radiobutton path="testRadio" value="1"/> <form:radiobutton path="testRadio" value="2"/> <form:textarea path="testTextArea" rows="3" cols="20"/> <form:hidden path="testHidden"/> </form:form>
这是一个简单的例子,我也是刚刚用,不过觉得比Struts的简单灵活。
15 楼 basicbest 2007-02-01 bingbing 写道现在公司的项目是基于Struts框架开发的,ORM框架用的hibernate
现在在一个页面出现了争议,这个页面是这样的:是一个分站页面,里面显示很多信息,例如:订单信息,日记信息,票价信息,新闻摘要等等信息(或者称之为模块?),这个页面类似与MSN那样的页面,每个小模块需要读取相应的数据库信息,本来是很容易的事,就是“JSP-ACTION-JSP”就 哦了,对应传出N个“参数”JSP页面一接收显示,可以现在的问题是,技术总监要求这个JSP页面就不用ACTION跳转过来,在JSP页面内用JAVABEAN做,然后显示用STRUTS标签,这样页面也不会出现<% ...... %>这种页面代码?
问题:我接触JAVA时间才半年多,已经有点习惯STRUTS的架设思想,跳转就用ACTION是理所当然的事情,突然他要求这个页面不用ACTION我很别扭,我可以用JAVABEAN做,但我想知道用JAVABEAN这个架设好不,甚至可行不,我现在觉得不好(我的观点),但不能说出来有效,有信服力的理由让人放弃这种架设想法.
补充:JAVABEAN是可以做很多事情,但现在情况是这样的,JAVABEAN做完了可以返回一个值,但STRUTS标签接收的是,request.setAttribute传出来的东西,或者说处理一个request对象?STRUTS标签可以处理JAVABEAN返回的值么?怎么处理?是不是一定要在JSP页面内嵌入<% ....... %> java代码才可以实现?
PS:补充问题不是重点,嘿嘿,项目需求做完了,自己可以研究:)请驳议我的观点,告诉一个放弃,或者维持我观点的有信服力的理由,
你们的技术总监没有说这样做的理由吗??
如果不用action,那是不是说要自己写servlet?如果要写servlet,为什么要用struts的标签,还是说用jsp的标签?
基本上他说的是标准的JSP+Servlet做法,JSP用taglib,然后加上Servlet。
估计你们的页面比较复杂,或者他觉得后面需求变化可能性大,所以这样做,后面修改的话,会比用struts方便很多。 16 楼 pikachu 2007-02-01 这种页面可以考虑用tiles 17 楼 basicbest 2007-02-01 pikachu 写道这种页面可以考虑用tiles大家都是想往上面加东西,没人想减东西哦? 18 楼 bingbing 2007-02-01 回basicbest朋友:) 不通过servlet的,直接JSP页面处理信息通过BEAN读取信息,不是servlet:) 谢谢了
pikachu哥哥 tiles..呼又有新东西学了开心 谢谢
项目概要设计中.....先谢谢大家,等具体实现的时候再把这个帖子挖出来吧.....
抛出哥(嘿嘿套近乎)谢谢 , 我会努力学习的..... 19 楼 basicbest 2007-02-02 赫赫,不客气。
我还是有兴趣知道你们的总监同志做这个决定的原因是什么,我觉得这个比使用的技术重要。 20 楼 jobs002 2007-02-23 看看是否比较容易维护,可以想想可维护性. 21 楼 Cecily 2007-03-01 gof95 写道理由就是MVC
除非他要用Ajax,否则就是脑子进水了
确实同意gof95的说法,跟技术总监谈谈MVC的重要性好了,从各个方面考核一下是不是通过ACTION结构更清晰些,维护方便些等等. 22 楼 抛出异常的爱 2007-03-01 basicbest 写道赫赫,不客气。
我还是有兴趣知道你们的总监同志做这个决定的原因是什么,我觉得这个比使用的技术重要。
最重要的是从学校里出来的兄弟们会用纯jsp+Bean能干出活的太少了....
不信你去招个会写servlet的大哥怎么也得4K以上吧....
PS:现在会写servlet的是有价无市...不要因为我的话去学jsp+bean 23 楼 moshalanye 2007-03-02 抛出异常的爱 写道bingbing 写道抛出异常的爱 写道一bean太灵活了
以至于一种普通功能
可用方式有五种实现左右
如果让维护的
看过去吐血的心都有。。。
二对异常的处理被简化了
(如果你压根就不在乎,
或不写异常处理那我没什么说的)
三对平拦截的支持,
四对plug in 的管理。
我知识太浅薄了。。。后2个不太明白:)
我想解释清楚些 要不好是说服不了人:)
谢谢
用Bean你如果想拦截。。。。。
还要自己定接口每个bean继承
作多错多。。
plug in 是指公用的扩展。。。如果你不支持plug in
那么大家很难用同一个plugin (没有共通的约定。。。)
赞同,不论是直接使用jsp(编译成servlet)+javabean或是使用servlet+javabean其实都是使用servlet,即使是使用mvc的时候也是使用servlet,只不过象strut的servlet提供的很多的规则和秩序,帮我们做了很多的事情,以至我们能专心做我们最关心的业务,不用关心那些烦琐的事情,例如国际化的问题(自己做那就的自己编写文件读取,并根据key和locale去取数据的操作),在mvc框架中提供的异常处理中做异常处理会更清晰更容易维护(struts1。29中的ActionExceptionHandle),而且很mvc框架又提供了很多的很好的AOP的支持(struts2。0的拦截器),验证框架使用(自己做东西就多了),token的使用(自己做会增加jsp和自己的代码,而且都是重复劳动)。。。。。,这些东西如果都自己实现会比较麻烦
(我也在学习中,只有半年的工作经验认识有限还有待提高,希望能和大家一起交流一起进步)