日期:2014-05-20  浏览次数:20670 次

说说最近的项目配置原则
公司项目比较大,遵循的原则是后期维护不需要改jsp上的任何东西,结果把我们折腾死。
一、泛泛的说,JSP页面一般包含这些东西
1、JS CSS 引入代码
2、自己的JS CSS代码
3、表单中的静态文字,如label=“用户名”,按钮等
4、动态输出的部分,<s:property value="email1.emailAddress"/>

然后这些东西都是配置的,页面上的东西都是可以通过配置进行修改,
针对1,这些JS CSS 在一个入口JSP全部搞定,你自己的JSP不允许任何JS CSS导入,除了第三方的,如
<script type="text/javascript" language="JavaScript" src="/JFP/js/jquery/jquery-1.5.1.js"></script>。
所以以后要更改引入哪些JS CSS,直接在入口的里面改。后面的JSP都可以拿到。

针对2,此处自己的模块写成自己的JS文件,没什么好说的。

针对3,这个页面上的静态文字全部是用Phrase进行配置的。而且这些文字都是存储在DB中的。直接<s:property value="getText('LabelPrimaryEmail')" />就可以拿到这个key:LabelPrimaryEmail对应的value的值。所以页面上静态的文字都是这样配的。后期直接改DB中的value值就可以了。google过这个玩意,没有搜到,应该是封装了struts2的I18N,猜的。有感兴趣的朋友可以看看源代码。

另外界面上的button,dialog,overlay都是用的对jquery的widget进行了封装过后的button,dialog。配置的,不准页面中出现<s:button >。有兴趣的可以看看jquery的demo:http://jqueryui.com/demos/dialog/

针对4,这个是Action过来的动态数据,直接标签输出或者el表达式即可,没什么好说的。


二、页面基本上都是活的了,再说说Action的跳转,在JSP的form中不允许出现action="xxx",那怎么跳转,用Spring的Web Flow:http://www.ibm.com/developerworks/cn/education/java/j-spring-webflow/section2.html。然后你的跳转就不需要你指定Action,他会知道你这个表单提交了该怎么走。另外你用图形的界面方式把Flow画出来之后,部署下,他会给你对应的JSP自动生成。下面就是把你要的东西填充在这个form里即可。

还有一些规矩,我说的是我们的项目:
1、不准用隐藏域,如<s:hidden>
2、不允许出现<table>,<tr>,只能用<div>
3、不允许出现style="xxx",


好处尝到过,痛苦也尝到过。。。。

------解决方案--------------------
我觉得痛苦多余好处吧,,这个在后期维护起来比较方便,开发可痛苦了。

是不是你们公司换人换的很勤啊。这样后来维护的人,就很容易能上手了唉。而不用去修改前台的东西了。

开发者痛苦,蛋都要碎掉。
------解决方案--------------------
某些场景下table比div好使多了。
有时多个组件使用一个css样式集,然后在各自的style表述一两项自定属性,这也是挺好用的。
------解决方案--------------------
确实前期开发可能比较痛苦、后期维护起来就爽了。
------解决方案--------------------
一直不擅长div啊 郁闷的我
------解决方案--------------------
针对table和div必须用div 这个我觉着没有必要。

呵呵
针对1,2是没有问题的

针对3,4
[
针对3,这个页面上的静态文字全部是用Phrase进行配置的。而且这些文字都是存储在DB中的。直接<s:property value="getText('LabelPrimaryEmail')" />就可以拿到这个key:LabelPrimaryEmail对应的value的值。所以页面上静态的文字都是这样配的。后期直接改DB中的value值就可以了。google过这个玩意,没有搜到,应该是封装了struts2的I18N,猜的。有感兴趣的朋友可以看看源代码。

另外界面上的button,dialog,overlay都是用的对jquery的widget进行了封装过后的button,dialog。配置的,不准页面中出现<s:button >。有兴趣的可以看看jquery的demo:http://jqueryui.com/demos/dialog/

针对4,这个是Action过来的动态数据,直接标签输出或者el表达式即可,没什么好说的。


]
我觉着可以主观的认为view层展示的就是以表单和列表的形式展示实体

那么我们就可以把jsp看成一个架子
只做为view层展示的支架。

表单元素与列表元素在jsp页面中只占位,没有实际的内容。在控制层返回view层的时候再组装
表单元素http://124.65.163.18:8182/crm/test/formitem.jpg

表单模板http://124.65.163.18:8182/crm/test/form.jpg



最终展示页面http://124.65.163.18:8182/crm/test/ui.jpg

------解决方案--------------------
现在大多都用div的吧,好多都这样的
------解决方案--------------------
探讨
针对table和div必须用div 这个我觉着没有必要。

呵呵
针对1,2是没有问题的

针对3,4
[
针对3,这个页面上的静态文字全部是用Phrase进行配置的。而且这些文字都是存储在DB中的。直接<s:property value="getText('LabelPrimaryEmail')" />就可以拿到这个key:LabelPrimaryEmail对应的value的值。所……

------解决方案--------------------
div+css