锁定老帖子 主题:MVC中被忽略的View层
精华帖 (1) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-21
我觉得
data binding + template + ui widget 应该是个不错的选择 最近没时间,不过打算作一个 **mvc + web flow + groovy/freemarker + zk/extjs/jquery-ui + jquery-ui-css/yaml 的ui端的聚合性高的东东的 当然,上面列的太理想化了,就最简单的,我能作好就满足了 |
|
返回顶楼 | |
发表时间:2009-09-21
也许XSL算是分离,VIEW都是用XML来填充展示,但是我也很烦XSL,感觉JSP最快捷,如果追求其他的什么东西,当然也要放弃其他一些东西。
MVC+XSL或者其他模板,其实也就是把response得方式换了一下 |
|
返回顶楼 | |
发表时间:2009-09-22
最后修改:2009-09-22
XSL 就是函数式语言了,复杂的原因是强迫写闭合标签和参数名,如果有 lisp 那样简洁就没问题了。
scala lift 就是函数式的框架,做的 view 和逻辑分离已经相当完美了。(虽然我觉得有点过于洁癖) 譬如说数据绑定的简单逻辑: class A { // 自动产生可用的 <lift:A.f> 标签,参数 x 为标签的内部 def f(x: NodeSeq) = { var a = "" // 闭包变量,对应表单域的值 // 内部函数 def process() { SomeModel find By(SomeModel.title, a) // 引用闭包变量做处理 // ... } // 绑定命名空间 entry bind("entry", x, // a = _ 是一个函数,表单域改变时设置 a 的值,也能很方便改写成 ajax 的 "a" -> SHtml.text(a, a = _), // 提交时调用内部函数 process() "submit" -> SHtml.submit("提交", process _)) } } 在 view 中使用 <lift:A.f form="POST"> <h3>填写 a 的值</h3> <p><entry:a/></p> <p><entry:submit/></p> </lift:A.f> |
|
返回顶楼 | |
发表时间:2009-09-22
最后修改:2009-09-22
另外想要彻底消灭 scriptlet 是非理性的 …… 页面放大量逻辑固然很混乱,但是少量插入能省很多事。
例如 <%= f(1,2,3) %> 写成标签,就是 <f a="1" b="2" c="3"/> 本质上是同一个东西,jstl 最后也会被编译成 servlet print,连这种都改成标签有什么好处? 强制页面为 xml 就更没必要了,把 </html> 去掉至少能让想从你网站偷内容的人郁闷一下子。google 还故意让标签不关门节约带宽,每年省 3000 多美元呢。 |
|
返回顶楼 | |
发表时间:2009-09-22
solonote 写道 抛出异常的爱 写道 wiki丰富化
就是页面的所有元素 都是用wiki可调的. 这样子业务人员才能真正的自己完成业务逻辑 PS:如果自己写html生成模板...我就用决对定位来布局元素. Wiki丰富化是指?异常哥可否说的详尽一些,或给点例子 wiki可以由文编发布 这样的话....很多程序员+美工所作的事就可以省下了. 还有就是多个模块排布时用决对定位的方式来排版.... 那样子的页面生成器好写也可以防止跨ie ff等 |
|
返回顶楼 | |
发表时间:2009-09-22
可以试下apache-wicket框架。显示和业务逻辑分离的相对而言最彻底。
|
|
返回顶楼 | |
发表时间:2009-09-22
iaimstar 写道 我还是比较喜欢servlet直接print代码
每次都得重新编译,很爽? |
|
返回顶楼 | |
发表时间:2009-09-22
UI层本身变化很大,所以UI要形成一个通用的很难。通过看各个框架提供的Tag就知道了,只能处理数据,布局是很难搞的。
所以只要有Tag,那么肯定会和HTML Tag混合起来用,这样维护就成问题了。 个人还是喜欢Wicket的简介的方式,UI就交给HTML了。 |
|
返回顶楼 | |
发表时间:2009-09-22
myseo 写道 iaimstar 写道 我还是比较喜欢servlet直接print代码
每次都得重新编译,很爽? 请把帖子看完,谢谢 |
|
返回顶楼 | |
发表时间:2009-09-22
支持 简洁至上
|
|
返回顶楼 | |