m*u
5 楼
jsf vs. struts (the most popular java web framework)
http://stackoverflow.com/questions/2845271/struts-2-or-jsf
java web framework choice
http://stackoverflow.com/questions/3062188/java-framework-choic
http://stackoverflow.com/questions/2845271/struts-2-or-jsf
java web framework choice
http://stackoverflow.com/questions/3062188/java-framework-choic
t*e
6 楼
这个又是个争议很大的话题了。
JSF我从04年开始用,开头既痛苦也快乐,快乐是写出的web page很干净,和spring整
合很好,code也POJO。痛苦是因为在用JSTL时发现问题,后来用了facelets才基本解决
。不过经过多年的沉淀,JSF2.0已经很成熟了。JSF2.2会整合spring web flow技术。
即便spring自己发布的spring web flow例子,view用JSF就要比用SpringMVC的简单漂
亮。作为一个spec,JSF既可以开发html-centric的projects,也可以做RIA类型的开发
。兼顾了有html designer和没有designer的两种不同需求。我比较喜欢POJO的技术,
容易学,不用记太多API。所以JSF对我而言是不错的技术。
JSF我从04年开始用,开头既痛苦也快乐,快乐是写出的web page很干净,和spring整
合很好,code也POJO。痛苦是因为在用JSTL时发现问题,后来用了facelets才基本解决
。不过经过多年的沉淀,JSF2.0已经很成熟了。JSF2.2会整合spring web flow技术。
即便spring自己发布的spring web flow例子,view用JSF就要比用SpringMVC的简单漂
亮。作为一个spec,JSF既可以开发html-centric的projects,也可以做RIA类型的开发
。兼顾了有html designer和没有designer的两种不同需求。我比较喜欢POJO的技术,
容易学,不用记太多API。所以JSF对我而言是不错的技术。
t*e
8 楼
IDE自动生成的UI code,特别是proprietary的,也包括dreamweaver,word自动生成的
html等等,都是不可维护的。这个结论即便推广到EAI/ESB,各种vendor提供的visual
wizard tool也成立。
【在 r***y 的大作中提到】
: jsf 产品中没用过
: n 年前一个产品中用过 oracle uix , 算是 jsf 的邪恶前生...
: 做新东西或 prototype 很快, 到后期 maintain 的时候和大量 customize 的时候痛苦
: 的要自杀...
: 所以从那以后只用 jsp + 各种tags + web designer活人 的干活...
html等等,都是不可维护的。这个结论即便推广到EAI/ESB,各种vendor提供的visual
wizard tool也成立。
【在 r***y 的大作中提到】
: jsf 产品中没用过
: n 年前一个产品中用过 oracle uix , 算是 jsf 的邪恶前生...
: 做新东西或 prototype 很快, 到后期 maintain 的时候和大量 customize 的时候痛苦
: 的要自杀...
: 所以从那以后只用 jsp + 各种tags + web designer活人 的干活...
u*s
10 楼
ADF就是这样!
If just用standard components很快,if need customize, down to the hell.
而且各个版本不完全兼容,新的版本居然把旧版本的一些feature给去掉了。害得我们
按旧版本自己写,顺便fix its bugs。原来是旧版的那个重要feature有很多bugs,人
家不fix,直接从新版本里拿掉了。
【在 r***y 的大作中提到】
: jsf 产品中没用过
: n 年前一个产品中用过 oracle uix , 算是 jsf 的邪恶前生...
: 做新东西或 prototype 很快, 到后期 maintain 的时候和大量 customize 的时候痛苦
: 的要自杀...
: 所以从那以后只用 jsp + 各种tags + web designer活人 的干活...
If just用standard components很快,if need customize, down to the hell.
而且各个版本不完全兼容,新的版本居然把旧版本的一些feature给去掉了。害得我们
按旧版本自己写,顺便fix its bugs。原来是旧版的那个重要feature有很多bugs,人
家不fix,直接从新版本里拿掉了。
【在 r***y 的大作中提到】
: jsf 产品中没用过
: n 年前一个产品中用过 oracle uix , 算是 jsf 的邪恶前生...
: 做新东西或 prototype 很快, 到后期 maintain 的时候和大量 customize 的时候痛苦
: 的要自杀...
: 所以从那以后只用 jsp + 各种tags + web designer活人 的干活...
r*y
11 楼
nod, nod... 切肤之痛, 记忆犹新啊.
记得当时那个 project 一直pay着 oracle 的 support , 后来想upgrade到 Oracle
ADF Faces, 找 oracle 问是否有工具从 Oracle ADF UIX 转过去, 人家很抱歉的说没
有你们手工搞吧.
然后pm痛下决心彻底离开 oracle 的垃圾产品, 也不敢冒险再用 JSF 的神马东西了.
当时评估了几个实现, 连 RichFaces , ICEfaces 都算上, 都不咋地, 每一个让人放心
的.
然后, 一个 50 多人的team 手工搞了一年多移到小米加步枪的 jsp , 然后那个
project 后来就待死不秧活的了.
所以俺一直觉得 oracle 的 marketing team 太牛X 了, 这么垃圾的东西居然能推的到
处都是, 而且现在还活的好好的, 没有死掉...
【在 u****s 的大作中提到】
: ADF就是这样!
: If just用standard components很快,if need customize, down to the hell.
: 而且各个版本不完全兼容,新的版本居然把旧版本的一些feature给去掉了。害得我们
: 按旧版本自己写,顺便fix its bugs。原来是旧版的那个重要feature有很多bugs,人
: 家不fix,直接从新版本里拿掉了。
记得当时那个 project 一直pay着 oracle 的 support , 后来想upgrade到 Oracle
ADF Faces, 找 oracle 问是否有工具从 Oracle ADF UIX 转过去, 人家很抱歉的说没
有你们手工搞吧.
然后pm痛下决心彻底离开 oracle 的垃圾产品, 也不敢冒险再用 JSF 的神马东西了.
当时评估了几个实现, 连 RichFaces , ICEfaces 都算上, 都不咋地, 每一个让人放心
的.
然后, 一个 50 多人的team 手工搞了一年多移到小米加步枪的 jsp , 然后那个
project 后来就待死不秧活的了.
所以俺一直觉得 oracle 的 marketing team 太牛X 了, 这么垃圾的东西居然能推的到
处都是, 而且现在还活的好好的, 没有死掉...
【在 u****s 的大作中提到】
: ADF就是这样!
: If just用standard components很快,if need customize, down to the hell.
: 而且各个版本不完全兼容,新的版本居然把旧版本的一些feature给去掉了。害得我们
: 按旧版本自己写,顺便fix its bugs。原来是旧版的那个重要feature有很多bugs,人
: 家不fix,直接从新版本里拿掉了。
g*g
12 楼
这个只能说你们做架构的人太没有经验了。本来是应该先评估,再上的。评估的部分里
,team的经验也是很重要的一部分。
【在 r***y 的大作中提到】
: nod, nod... 切肤之痛, 记忆犹新啊.
: 记得当时那个 project 一直pay着 oracle 的 support , 后来想upgrade到 Oracle
: ADF Faces, 找 oracle 问是否有工具从 Oracle ADF UIX 转过去, 人家很抱歉的说没
: 有你们手工搞吧.
: 然后pm痛下决心彻底离开 oracle 的垃圾产品, 也不敢冒险再用 JSF 的神马东西了.
: 当时评估了几个实现, 连 RichFaces , ICEfaces 都算上, 都不咋地, 每一个让人放心
: 的.
: 然后, 一个 50 多人的team 手工搞了一年多移到小米加步枪的 jsp , 然后那个
: project 后来就待死不秧活的了.
: 所以俺一直觉得 oracle 的 marketing team 太牛X 了, 这么垃圾的东西居然能推的到
,team的经验也是很重要的一部分。
【在 r***y 的大作中提到】
: nod, nod... 切肤之痛, 记忆犹新啊.
: 记得当时那个 project 一直pay着 oracle 的 support , 后来想upgrade到 Oracle
: ADF Faces, 找 oracle 问是否有工具从 Oracle ADF UIX 转过去, 人家很抱歉的说没
: 有你们手工搞吧.
: 然后pm痛下决心彻底离开 oracle 的垃圾产品, 也不敢冒险再用 JSF 的神马东西了.
: 当时评估了几个实现, 连 RichFaces , ICEfaces 都算上, 都不咋地, 每一个让人放心
: 的.
: 然后, 一个 50 多人的team 手工搞了一年多移到小米加步枪的 jsp , 然后那个
: project 后来就待死不秧活的了.
: 所以俺一直觉得 oracle 的 marketing team 太牛X 了, 这么垃圾的东西居然能推的到
r*y
14 楼
做自己的产品和bid project 不一样
毕竟是 fortune 100 的公司, architect 就算是忽悠上来的也不至于俺们码农都看明
白的东西他们不明白.
有时候明知道长远看来要还, 甚至多倍还回去... 但高层的决策是取决于是否你bid到
project, 后面再说... 所以前期怎么快, 怎么能把cost搞下来就怎么弄... 后面再说.
.. 然后很多projects就这样悲催了... 所以从那以后坚决不进bid project 的组了.
【在 g*****g 的大作中提到】
: 这个只能说你们做架构的人太没有经验了。本来是应该先评估,再上的。评估的部分里
: ,team的经验也是很重要的一部分。
毕竟是 fortune 100 的公司, architect 就算是忽悠上来的也不至于俺们码农都看明
白的东西他们不明白.
有时候明知道长远看来要还, 甚至多倍还回去... 但高层的决策是取决于是否你bid到
project, 后面再说... 所以前期怎么快, 怎么能把cost搞下来就怎么弄... 后面再说.
.. 然后很多projects就这样悲催了... 所以从那以后坚决不进bid project 的组了.
【在 g*****g 的大作中提到】
: 这个只能说你们做架构的人太没有经验了。本来是应该先评估,再上的。评估的部分里
: ,team的经验也是很重要的一部分。
z*3
17 楼
不只adf是这样,java很多东西都是这样
新版本把旧版本的方法给去掉了
然后不同版本的jar互相冲突
还有时候api拿过来,里面有bug
我们只好拆开,反编译以后再修复,再编译再打包
而且这都还是各国官方发布的api,有时候觉得他们真的很奇芭
一个国家,居然搞出这种东西
然后给他们发了个邮件说有bug,哪里哪里错了,该怎么写
对方回复问有没有兴趣到他们那边去工作,要求会说他们的语言
吐血
【在 u****s 的大作中提到】
: ADF就是这样!
: If just用standard components很快,if need customize, down to the hell.
: 而且各个版本不完全兼容,新的版本居然把旧版本的一些feature给去掉了。害得我们
: 按旧版本自己写,顺便fix its bugs。原来是旧版的那个重要feature有很多bugs,人
: 家不fix,直接从新版本里拿掉了。
新版本把旧版本的方法给去掉了
然后不同版本的jar互相冲突
还有时候api拿过来,里面有bug
我们只好拆开,反编译以后再修复,再编译再打包
而且这都还是各国官方发布的api,有时候觉得他们真的很奇芭
一个国家,居然搞出这种东西
然后给他们发了个邮件说有bug,哪里哪里错了,该怎么写
对方回复问有没有兴趣到他们那边去工作,要求会说他们的语言
吐血
【在 u****s 的大作中提到】
: ADF就是这样!
: If just用standard components很快,if need customize, down to the hell.
: 而且各个版本不完全兼容,新的版本居然把旧版本的一些feature给去掉了。害得我们
: 按旧版本自己写,顺便fix its bugs。原来是旧版的那个重要feature有很多bugs,人
: 家不fix,直接从新版本里拿掉了。
c*e
20 楼
小米加步枪写jsp的人飘过~~~
servlet,beans,get/setAttribue,get/setParameter,action=xxx.jsp,dispatch到xxx.
jsp,request.xxxx,hibernate,有些地方竟然还要写, sigh. 一个jsp文件,跳到
下一个jsp文件,跳到servlet,又是传值什么的。
貌似jsp没有asp.net的那种 !isPostBack, 不能forward给自己这个网页,比如要把搜
索数据库的结果列表到当前网页,没有asp.net那么方便。
【在 r***y 的大作中提到】
: nod, nod... 切肤之痛, 记忆犹新啊.
: 记得当时那个 project 一直pay着 oracle 的 support , 后来想upgrade到 Oracle
: ADF Faces, 找 oracle 问是否有工具从 Oracle ADF UIX 转过去, 人家很抱歉的说没
: 有你们手工搞吧.
: 然后pm痛下决心彻底离开 oracle 的垃圾产品, 也不敢冒险再用 JSF 的神马东西了.
: 当时评估了几个实现, 连 RichFaces , ICEfaces 都算上, 都不咋地, 每一个让人放心
: 的.
: 然后, 一个 50 多人的team 手工搞了一年多移到小米加步枪的 jsp , 然后那个
: project 后来就待死不秧活的了.
: 所以俺一直觉得 oracle 的 marketing team 太牛X 了, 这么垃圾的东西居然能推的到
servlet,beans,get/setAttribue,get/setParameter,action=xxx.jsp,dispatch到xxx.
jsp,request.xxxx,hibernate,有些地方竟然还要写, sigh. 一个jsp文件,跳到
下一个jsp文件,跳到servlet,又是传值什么的。
貌似jsp没有asp.net的那种 !isPostBack, 不能forward给自己这个网页,比如要把搜
索数据库的结果列表到当前网页,没有asp.net那么方便。
【在 r***y 的大作中提到】
: nod, nod... 切肤之痛, 记忆犹新啊.
: 记得当时那个 project 一直pay着 oracle 的 support , 后来想upgrade到 Oracle
: ADF Faces, 找 oracle 问是否有工具从 Oracle ADF UIX 转过去, 人家很抱歉的说没
: 有你们手工搞吧.
: 然后pm痛下决心彻底离开 oracle 的垃圾产品, 也不敢冒险再用 JSF 的神马东西了.
: 当时评估了几个实现, 连 RichFaces , ICEfaces 都算上, 都不咋地, 每一个让人放心
: 的.
: 然后, 一个 50 多人的team 手工搞了一年多移到小米加步枪的 jsp , 然后那个
: project 后来就待死不秧活的了.
: 所以俺一直觉得 oracle 的 marketing team 太牛X 了, 这么垃圾的东西居然能推的到
r*y
22 楼
mvc 框架都有 view 和 bean 的binding
"servlet,beans,get/setAttribue,get/setParameter,action=xxx.jsp,dispatch到xxx
." 这些, 在非特殊情况下都不需要.
另外 view 就是简单的 render . 复杂的logic 都在 service tier.
如果developer 的水平和经验还ok 的话, 这东西基本在 jsp 中是绝迹的.
jsp+tags 真的很够用了.
不知道你用过 springmvc 没有, 搭配 spring tags , javascript, css 真的很灵活.
而且再也不怕 customize 任何东西了. 当然得有有经验的 web designer 进行优化和
maintain .
jsf 一拖一拽一大坨东西就出来了是挺爽, 但要customize 那一坨一坨的components
也不省劲.
实在觉得再花时间捣鼓 jsf 这些老是变脸的 gui 的东西很不值得.
xxx.
【在 c*********e 的大作中提到】
: 小米加步枪写jsp的人飘过~~~
: servlet,beans,get/setAttribue,get/setParameter,action=xxx.jsp,dispatch到xxx.
: jsp,request.xxxx,hibernate,有些地方竟然还要写, sigh. 一个jsp文件,跳到
: 下一个jsp文件,跳到servlet,又是传值什么的。
: 貌似jsp没有asp.net的那种 !isPostBack, 不能forward给自己这个网页,比如要把搜
: 索数据库的结果列表到当前网页,没有asp.net那么方便。
"servlet,beans,get/setAttribue,get/setParameter,action=xxx.jsp,dispatch到xxx
." 这些, 在非特殊情况下都不需要.
另外 view 就是简单的 render . 复杂的logic 都在 service tier.
如果developer 的水平和经验还ok 的话, 这东西基本在 jsp 中是绝迹的.
jsp+tags 真的很够用了.
不知道你用过 springmvc 没有, 搭配 spring tags , javascript, css 真的很灵活.
而且再也不怕 customize 任何东西了. 当然得有有经验的 web designer 进行优化和
maintain .
jsf 一拖一拽一大坨东西就出来了是挺爽, 但要customize 那一坨一坨的components
也不省劲.
实在觉得再花时间捣鼓 jsf 这些老是变脸的 gui 的东西很不值得.
xxx.
【在 c*********e 的大作中提到】
: 小米加步枪写jsp的人飘过~~~
: servlet,beans,get/setAttribue,get/setParameter,action=xxx.jsp,dispatch到xxx.
: jsp,request.xxxx,hibernate,有些地方竟然还要写, sigh. 一个jsp文件,跳到
: 下一个jsp文件,跳到servlet,又是传值什么的。
: 貌似jsp没有asp.net的那种 !isPostBack, 不能forward给自己这个网页,比如要把搜
: 索数据库的结果列表到当前网页,没有asp.net那么方便。
T*U
23 楼
jsp也不应该用script, 有一个选项在container里面设置后可以禁止jsp script.应该
用EL和各种tags, 那样页面会整洁很多。logic都由后台处理就行了。
xxx
.
和
【在 r***y 的大作中提到】
: mvc 框架都有 view 和 bean 的binding
: "servlet,beans,get/setAttribue,get/setParameter,action=xxx.jsp,dispatch到xxx
: ." 这些, 在非特殊情况下都不需要.
: 另外 view 就是简单的 render . 复杂的logic 都在 service tier.
: 如果developer 的水平和经验还ok 的话, 这东西基本在 jsp 中是绝迹的.
: jsp+tags 真的很够用了.
: 不知道你用过 springmvc 没有, 搭配 spring tags , javascript, css 真的很灵活.
: 而且再也不怕 customize 任何东西了. 当然得有有经验的 web designer 进行优化和
: maintain .
: jsf 一拖一拽一大坨东西就出来了是挺爽, 但要customize 那一坨一坨的components
用EL和各种tags, 那样页面会整洁很多。logic都由后台处理就行了。
xxx
.
和
【在 r***y 的大作中提到】
: mvc 框架都有 view 和 bean 的binding
: "servlet,beans,get/setAttribue,get/setParameter,action=xxx.jsp,dispatch到xxx
: ." 这些, 在非特殊情况下都不需要.
: 另外 view 就是简单的 render . 复杂的logic 都在 service tier.
: 如果developer 的水平和经验还ok 的话, 这东西基本在 jsp 中是绝迹的.
: jsp+tags 真的很够用了.
: 不知道你用过 springmvc 没有, 搭配 spring tags , javascript, css 真的很灵活.
: 而且再也不怕 customize 任何东西了. 当然得有有经验的 web designer 进行优化和
: maintain .
: jsf 一拖一拽一大坨东西就出来了是挺爽, 但要customize 那一坨一坨的components
z*3
30 楼
我觉得你们都没有理解他真实的意图
他的意思是
javascript不是安全的
因为在客户端可以关掉js
这很正常,谁都可以通过修改浏览器的设置来完成
所以任何重要的逻辑处理,比如身份验证
都不应该用javascript来写
事实上很多网站都有在js失效的前提下的缺省页面
实话说,javascript做的大部分function都是可有可无的
无非增加客户体验而已,真正涉及到客户利益的东西
都是在后台完成,就好比女孩子打扮自己的那些装饰
不用不妨碍她是个女人,她有女人的基本职能
但是女孩子嘛,都爱打扮,所以你找不到不打扮的女人
这是retry要表达的意思,两个人其实并不冲突
不打扮不能出来见人,但是不妨碍她生孩子
看你在意的是什么,在意的是让她怀孕呢,还是她的粉底厚不厚
【在 t*******e 的大作中提到】
: 是的,不过那个叫scriptlets.
他的意思是
javascript不是安全的
因为在客户端可以关掉js
这很正常,谁都可以通过修改浏览器的设置来完成
所以任何重要的逻辑处理,比如身份验证
都不应该用javascript来写
事实上很多网站都有在js失效的前提下的缺省页面
实话说,javascript做的大部分function都是可有可无的
无非增加客户体验而已,真正涉及到客户利益的东西
都是在后台完成,就好比女孩子打扮自己的那些装饰
不用不妨碍她是个女人,她有女人的基本职能
但是女孩子嘛,都爱打扮,所以你找不到不打扮的女人
这是retry要表达的意思,两个人其实并不冲突
不打扮不能出来见人,但是不妨碍她生孩子
看你在意的是什么,在意的是让她怀孕呢,还是她的粉底厚不厚
【在 t*******e 的大作中提到】
: 是的,不过那个叫scriptlets.
z*3
31 楼
作为我个人,作为back end的爱好者
我也同意尽量减轻js的使用
因为js不安全是一定的
其次呢,一个小小的bug可以让整个script挂掉
纠错起来很痛苦,写起来也很麻烦,合适的工具远没有java那么多
用一些jquery还好,它能帮你做很多事情
还能帮你解决js被关掉时候的缺省设置
但是我觉得能不用最好少用,减轻对jquery的依赖嘛
鬼知道jquery是不是有bug呢
除非这个颜面真的那么重要
我们现在搞的系统,连css都不用
因为我们不需要面对终端用户
又不是web组,reseller不会在乎我们写的界面有多好看
当然如果你写的是web页面,尤其是给终端客户体验的页面
比如gmail之类的,那还是用吧,客户体验有的时候是很重要的
尤其是小客户,毕竟给钱的是客户不是?
我也同意尽量减轻js的使用
因为js不安全是一定的
其次呢,一个小小的bug可以让整个script挂掉
纠错起来很痛苦,写起来也很麻烦,合适的工具远没有java那么多
用一些jquery还好,它能帮你做很多事情
还能帮你解决js被关掉时候的缺省设置
但是我觉得能不用最好少用,减轻对jquery的依赖嘛
鬼知道jquery是不是有bug呢
除非这个颜面真的那么重要
我们现在搞的系统,连css都不用
因为我们不需要面对终端用户
又不是web组,reseller不会在乎我们写的界面有多好看
当然如果你写的是web页面,尤其是给终端客户体验的页面
比如gmail之类的,那还是用吧,客户体验有的时候是很重要的
尤其是小客户,毕竟给钱的是客户不是?
相关阅读
how to use grep/sed to remove newlines? (转载)问个问题请问哪个J2EE MVC Framework最有前途Pretty good writeup comparing EJB3 and Spring请教documenta java question (转载)interestingfree binary file sharingjunit questionsolution for multi service facilitiesinterview question问一个关于Eclipse IDE 的问题share a free ebook download addressZK with Spring Web Flow请教一个有关 inner class 的问题要准备java面试, 看什么书比较好?Do you guys use lex to parsing input?ZK vs ClickJavaFX is actually quite powerful包子答谢--请教高手:streaming data to applet