`
Acaleph
  • 浏览: 30996 次
  • 性别: Icon_minigender_1
  • 来自: 广东惠州
社区版块
存档分类
最新评论

Struts2与jQuery使用总结

阅读更多

 

经过一段时间的使用和学习,发现jQuery与Struts2还是比较容易配置的,总结一下:

1 Action实现了ModelDriver之后,Form field不再需要Entity.Property方式命名了,普通HTML Form元素,就可以配合Struts2工作了。

2 要实现ModelDrivern必需在Struts.xml中配置如下Interceptor:

<interceptor-ref name="modelDrivenStack" />

或者直接引用默认的:<interceptor-ref name="defaultStack" />就可以了。

3 Interceptor配置顺序是有要求的,否则,某些功能不能工作。

 补充一下:

JQ有一个常用验证插件,要求DOM元素的ID和NAME必须相同,ACTION实现了MODELDRIVEN接口后,页面标签就没有必要采用Model.Property的写法了。

我个人认为,选择框架,主要选择通用部分较强的部分,这样,便于项目维护和拓展。比如STRUTS2的ACTION部分和SPRING的MVC很近似了。切换很容易。

4 使用jQuery常用的一个Validate插件时,因为该插件是以ID为验证依据,当表单有重复ID时,表单将不被提交,同时因为OGNL会将重复ID的值返回到页面,如果去除插件,重复的ID值将被叠加到同一个数据字段中,保存到数据库。

5 接触Struts标签时,感觉很方便,比如常用的<s:select />,把Collection放到页面请讲求中,就可以了,但如果是OneToMany关系,就不得不写成Model.Property形式,通过Struts Parse成页面时,这里的“。”变成了下划线,如果这时个应用JQ,看上去就不伦不类的。所以建议,如果是需要操作数据的select元素,还是完全用JQ结合AJAX来构建最好,级联SELECT应用场景,JQ优势更明显了。

6 因为JQ core是由天才的作者维护的,大家常与MT来对比(团队开发)。其它组件的实现需要自已写,或者引用他人的。在引用他人的JQ plugin时,一定要做到读懂代码,看自己能否掌握,没问题之后,再用,这要有助于项目的扩展或者升级。

分享到:
评论
43 楼 yexin218 2009-03-01  
有时间,我看看啊
42 楼 bonny 2009-02-28  
murainwood 写道
黑暗浪子 写道
我怎么没听说过“弥合桌面开发和Web的鸿沟”,你说的是flex,JAVAFX吧?

是哇?ASP.NET算是始作俑者吧

AXML(??我没拼错?),或者XUL。。。。

想法很好很强大,关键是政治问题。
41 楼 murainwood 2009-02-28  
erichua 写道
why we still need structs? I think the spring is enough for ajax json. Structs is really extra

如果从AJAX的角度上来说,Struts/Struts2是略显多余,比如像我,往Response里写JSON...
40 楼 erichua 2009-02-28  
why we still need structs? I think the spring is enough for ajax json. Structs is really extra
39 楼 murainwood 2009-02-27  
黑暗浪子 写道
我怎么没听说过“弥合桌面开发和Web的鸿沟”,你说的是flex,JAVAFX吧?

是哇?ASP.NET算是始作俑者吧
38 楼 娴静女生 2009-02-27  
黑暗浪子 写道
我怎么没听说过“弥合桌面开发和Web的鸿沟”,你说的是flex,JAVAFX吧?



纯属FLEX!
37 楼 黑暗浪子 2009-02-27  
我怎么没听说过“弥合桌面开发和Web的鸿沟”,你说的是flex,JAVAFX吧?
36 楼 murainwood 2009-02-27  
elvewyn 写道
murainwood 写道
elvewyn 写道
zxbyhcsdn 写道
实在想不出jquery和struts2有什么关系!


楼主说的意思, 可能就是说jquery与验证程序与Struts2的form如何结合的问题。

另外, 我做项目中。一般ajax的实现用的就是struts2 + json plugin + jquery。觉得非常舒服。

早先用过,一点儿也不舒服。
一开始用JSF,觉得这玩意儿的AJAX 组件能让我不用写JS,挺好。
后来进步了,用DWR,直接把Service“公开”到前台,用JS调用,挺好。
后来又进步了些,JSON Plugin,多好啊,前台就是简单的JS,少了讨厌的,莫名其妙的DWR,真好。
现在回归原始了,response里面write字符串,前台就是普通的JS,啥都能控制,也不用再学啥后来的AJAX轮子,开发起来心里和明镜似的,舒服。


在我们的项目中这样可不行。我的Action需要测试。直接与response绑定后会有些棘手。最开始我们也是自己写的js。除了实现ajax通讯外, 还有一些页面的效果。但时候, 引入jquery后, 效率和质量都有了很大的提高。

如果想要“明镜”的感觉, 为什么不用“汇编”?

嘿嘿,就是为了对付测试覆盖率,我写了个ResponJsonHelper类,写UT的时候,会把JSON字符串写到本地Log里。在服务器里,这个类就是通过上下文找到ServletResponse来print JSON字符串。
主要是我这个人比较懒,那时看见JSON Plugin还要写配置,几个新手稀里糊涂乱用,才返璞归真的。
说句题外话,很多Java的Web框架,简直就是把简单的事情变复杂。Struts2/Webwork 还好,那些乱七八糟的面向组件的Web框架,号称“弥合桌面开发和Web的鸿沟”,我看就是扯淡。桌面软件开发和Web开发本来差别就大。Http协议本来就是无状态的,非得模拟得“有状态”,凭空误导入门开发者,何必呢?
35 楼 ccxw1983 2009-02-27  
Struts 2抄袭的webwork ?
34 楼 akiraray 2009-02-26  
mazhao 写道
对于熟悉Struts 1的开发人员来说,Struts 2即易于上手,又需要改变观念!
建议好好看看Struts 2 in Action这本书,我觉得该讲的东西都讲了,
中文版的已经翻译完毕了,相信马上会跟大家见面!

可以到我的blog上去拍砖!
http://blog.csdn.net/struts2

webwork in action足矣……
33 楼 suan2046 2009-02-26  
struts2 还没接触,看各位对 struts2的热情这么高涨, 是时候要研究下....
32 楼 黑暗浪子 2009-02-26  
mazhao 写道
对于熟悉Struts 1的开发人员来说,Struts 2即易于上手,又需要改变观念!
建议好好看看Struts 2 in Action这本书,我觉得该讲的东西都讲了,
中文版的已经翻译完毕了,相信马上会跟大家见面!

可以到我的blog上去拍砖!
http://blog.csdn.net/struts2

支持一下,struts2的确是好东西。
31 楼 黑暗浪子 2009-02-26  
Joo 写道
现在科室正在选JS框架,我主张用JQuery,但是老大看上了YUI丰富的UI组件。但是我觉得要把YUI用起来相比JQ难很多了

去年奥运期间,我在一家公司呆了三星期,最后辞职走人,主要的导火索就是我的JQ和项目经理的YUI之争。
马上要给客户上线了,还叫人家搞不熟悉的YUI。自己熟悉自己来开发好了,干嘛叫我去用,我都用JQ搞定客户需求了。这个经理还要说:“一定要弄得最完美”靠~,知道什么叫“镀金”吗?知道“镀金”危害性吗?没学过项目管理还和老子争~
30 楼 mazhao 2009-02-26  
对于熟悉Struts 1的开发人员来说,Struts 2即易于上手,又需要改变观念!
建议好好看看Struts 2 in Action这本书,我觉得该讲的东西都讲了,
中文版的已经翻译完毕了,相信马上会跟大家见面!

可以到我的blog上去拍砖!
http://blog.csdn.net/struts2
29 楼 elvewyn 2009-02-26  
murainwood 写道
elvewyn 写道
zxbyhcsdn 写道
实在想不出jquery和struts2有什么关系!


楼主说的意思, 可能就是说jquery与验证程序与Struts2的form如何结合的问题。

另外, 我做项目中。一般ajax的实现用的就是struts2 + json plugin + jquery。觉得非常舒服。

早先用过,一点儿也不舒服。
一开始用JSF,觉得这玩意儿的AJAX 组件能让我不用写JS,挺好。
后来进步了,用DWR,直接把Service“公开”到前台,用JS调用,挺好。
后来又进步了些,JSON Plugin,多好啊,前台就是简单的JS,少了讨厌的,莫名其妙的DWR,真好。
现在回归原始了,response里面write字符串,前台就是普通的JS,啥都能控制,也不用再学啥后来的AJAX轮子,开发起来心里和明镜似的,舒服。


在我们的项目中这样可不行。我的Action需要测试。直接与response绑定后会有些棘手。最开始我们也是自己写的js。除了实现ajax通讯外, 还有一些页面的效果。但时候, 引入jquery后, 效率和质量都有了很大的提高。

如果想要“明镜”的感觉, 为什么不用“汇编”?
28 楼 llfzy 2009-02-26  
抛出异常的爱 写道
zxbyhcsdn 写道
struts2是好东西,
自己学最多1~2周就学好了,
总之比struts1先进多了..
你不觉得struts1的那些ActionForm太多了么.
其他的还有很多好处,是值得话时间去学习的.

作过一个struts1项目....actionform只有一个....
使用方式与map一样.
好处就是ibaits一杆子插到底.



ibaits很灵活!我也喜欢
27 楼 xiaocheng 2009-02-26  
Joo 写道
现在科室正在选JS框架,我主张用JQuery,但是老大看上了YUI丰富的UI组件。但是我觉得要把YUI用起来相比JQ难很多了


如果你们有好的美工,js+美工,其他什么框架的是多余的。
缺点就是你们要配合的好才行
26 楼 hantsy 2009-02-25  
Struts 1 ,struts 2 产生的时代不一样。。。
直到现在很多公司还是愿意采用struts 1。Action中暴露了ServletAPI,对于熟悉jsp,servlet api的人来说,struts 1显然亲和力要高一些。
Struts 2 完全将servlet封装了起来,对一般熟悉Java语法的人就可以很快上手,看上去很容易,但或许你写完一个项目还不清楚struts2底层的运作。
Struts 1.3 引入了责任链模式,RequestProcessor将要执行的任务分给一串Command来执行,用户可以自定义chain。添加自己的功能也很容易得多(比如用户访问控制),只需要定义自己的一个Command,重新定义chain就行了。
和Struts 2 有异曲同工之处,Struts 2 中请求由一系列inteceptor来处理,同样可以自定义执行哪些inteceptor,用户也自定义inteceptor。
Struts 1的ActionForm招来很多非议,其实它只是一个维护客户端数据状态的工具而已,可以认为它充当的j2ee core patterns中的dto的角色,实际上也可以减少使用或者不用ActionForm(一些扩展提供了支持,如form def,http://formdef.dev.java.net)。其它一些不足,可以通过第三方工具来补充,如AjaxTag,OKins, struts layout等。
在Struts1中, action是非线程安全,书写Action时不能在其中暴露业务数据。
struts 1 的网络资源非常丰富,常见:
http://struts.sf.net(一些最初的struts1扩展的集中处)
http://formdef.dev.java.net
http://strutsejb.dev.java.net
http://strecks.sf.net(java 5 annotations的支持,零xml配置)
http://struts.improve-technologies.com/

Struts 2中将Stuts 1中ActionForm 和action的概念进行了合并,放在Action中,并且它是线程安全的,Struts2会为每个请求创建一个单独的action实例。



25 楼 murainwood 2009-02-25  
xulei2709 写道
yyjn12 写道
struts2 好复杂,我个人觉得我对这种东西没有信心能学会。
jquery个人觉得很强大,用起来很方便,比起重量级又复杂的dwr之类的,真的是强多了。


dwr很复杂吗?我觉得用dwr实现跟数据库的异步交互很方便也很容易的啊,您是怎么使用的啊?咱们可以交流一下吗?

这些东西对我来说,都太复杂了。把简单的事情搞复杂,不是啥好事儿。
24 楼 xulei2709 2009-02-25  
yyjn12 写道
struts2 好复杂,我个人觉得我对这种东西没有信心能学会。
jquery个人觉得很强大,用起来很方便,比起重量级又复杂的dwr之类的,真的是强多了。


dwr很复杂吗?我觉得用dwr实现跟数据库的异步交互很方便也很容易的啊,您是怎么使用的啊?咱们可以交流一下吗?

相关推荐

    Struts2+jquery

    在"JqueryTest"这个压缩包中,我们可以预见到一系列与Struts2和jQuery结合使用相关的代码示例。初学者可以通过学习这些示例来了解如何在实际项目中集成这两种技术。 首先,Struts2的核心是Action类,它处理来自...

    使用Struts2和jQuery EasyUI实现简单CRUD系统

    在本文中,我们将探讨如何使用Struts2和jQuery EasyUI框架创建一个简单的CRUD(创建、读取、...通过这样的方式,你可以构建出一个功能完备、用户友好的CRUD系统,同时理解和掌握了Struts2与jQuery EasyUI的结合使用。

    Struts2+jQuery(不用JSON)实现局部刷新

    4. **Struts2与jQuery的集成**: - **Struts2的JSON插件**:虽然题目要求不使用JSON,但通常情况下,Struts2通过JSON插件返回数据给jQuery是最方便的方式。不过,我们可以通过设置Content-Type为"text/plain"或...

    Struts2 与Jquery Ajax的json数据交换的典型范例

    在Struts2与jQuery的Ajax交互中,JSON扮演着数据载体的角色,可以高效地传输数据。 **2. Struts2 JSON插件** 为了支持JSON数据交换,Struts2提供了一个JSON插件。首先,需要在项目中添加该插件的依赖,并在struts....

    Struts2 + jQuery+JSON 实现ajax

    本篇文章介绍如何利用Struts2框架结合jQuery与JSON来构建一个简单的Ajax功能。 #### 一、环境搭建 1. **引入Struts2的JSON插件** 描述中提到的第一步是将Struts2的JSON插件加入到Web项目的lib目录下。这一步非常...

    Jquery与struts2

    **jQuery与Struts2整合详解** 在Web开发中,jQuery是一个强大的JavaScript库,它极大地简化了JavaScript的使用,使得前端交互更加便捷高效。而Struts2作为一款成熟的MVC框架,广泛应用于Java后端开发,提供了强大的...

    struts jquery

    总结来说,"struts jquery"组合意味着在Struts 2框架下使用jQuery进行前端开发,通过Struts 2的控制器层和jQuery的客户端功能,实现高效、交互性强的Web应用。压缩包中的"struts2+jQuery所需jar包"应该是包含了...

    ( Struts2+JQuery插件的使用

    ### Struts2与jQuery插件的集成使用 #### 一、引言 随着Web应用程序的不断发展,前后端分离成为一种趋势,而Struts2作为Java Web领域中的老牌框架,其与jQuery的结合使得开发者能够更加方便地处理客户端的动态交互...

    jquery java struts2 实现分页 非常好看的分页

    总结来说,实现“jQuery Java Struts2 实现分页”涉及到前后端的协同工作:前端使用jQuery和其分页插件处理用户交互,样式通过CSS自定义;后端使用Java和Struts2框架处理分页逻辑,与数据库进行交互,返回所需数据。...

    Struts2整合jQuery实现Ajax功能

    #### 三、Struts2与jQuery的整合 在Struts2项目中集成jQuery可以显著提高用户体验。下面我们将详细介绍如何在Struts2中引入jQuery,并通过一个具体的示例来演示如何利用jQuery实现Ajax功能。 ##### 3.1 引入jQuery ...

    Struts2_jquery_json1.0.zip_Struts2 heloword_struts2_struts2 jque

    总结来说,"Struts2_jquery_json1.0.zip"是一个综合实例,展示了如何在Struts2框架中结合使用jQuery和JSON进行异步数据交互。通过学习这个实例,开发者可以更好地理解如何在Java后端与JavaScript前端之间有效地传递...

    Struts2整合jQuery实现Ajax功能.doc

    总结来说,Struts2整合jQuery实现Ajax功能,可以让前端和后端之间进行无缝通信,提供更加动态的用户体验。通过使用jQuery简化Ajax操作,开发者可以专注于业务逻辑而不是繁琐的异步请求处理。同时,Struts2的Action...

    Struts2上传jQuery使用的框架和插件

    ### Struts2与jQuery结合实现文件上传的知识点详解 #### 一、技术栈介绍 本文主要探讨了在Struts2框架下使用jQuery及其插件实现文件上传的技术方案。具体涉及的技术栈包括: - **Struts2**: 一个开源的Web应用...

    struts2和JQuery

    当Struts2与jQuery结合时,通常会在Struts2的Action中返回JSON数据,然后通过jQuery的AJAX请求获取这些数据并更新页面。这样,开发者可以实现富客户端应用,提高用户体验,同时利用Struts2的强大控制层功能处理业务...

    struts2+jquery+json+ajax例子

    总结起来,"struts2+jquery+json+ajax"的例子展示了如何利用这些技术协同工作,实现一个无刷新的登录界面,提供流畅的用户体验。通过Struts2处理业务逻辑和数据验证,jQuery和Ajax负责前后端的通信,JSON作为数据...

    struts2 jquery插件

    在探讨Struts2与jQuery插件的结合时,我们深入分析了如何在Struts2框架中集成并利用jQuery插件来增强Web应用程序的交互性和用户体验。Struts2作为一个流行的Java Web开发框架,提供了一种灵活的方式来构建MVC架构的...

    Struts2+Jquery+ajax+Json代码案例

    在“jsa03”这个文件中,可能包含了相关的JavaScript代码,这些代码负责与Struts2 Action进行Ajax通信,使用jQuery发送请求并处理返回的JSON数据。例如,可能有一个函数用于向服务器发送请求,获取数据,然后使用$....

    struts2+jquery+json

    Struts2与jQuery结合使用,可以实现前后端的无缝交互。Struts2处理服务器端的业务逻辑,而jQuery则负责客户端的交互和数据请求。在JSON的协助下,它们可以通过Ajax方式通信,使得页面无需刷新即可更新内容,提供更...

    一个简单的struts2+json+jquery 交互的例子

    总结来说,这个例子展示了如何利用Struts2处理后端业务逻辑,使用JSON作为数据交换格式,以及通过jQuery在前端实现动态更新和与服务器的异步通信。了解和掌握这三个工具的整合使用,对于提升Web开发效率和用户体验...

    Struts2 + jQuery 实现ajax.txt

    ### Struts2 + jQuery 实现Ajax交互的关键技术与实践 #### 概述 在Web开发领域,使用Struts2框架结合jQuery实现Ajax交互是一种常见的做法。这种组合不仅可以提高Web应用程序的响应速度,还能显著提升用户体验。...

Global site tag (gtag.js) - Google Analytics