草庐IT

java - 从 Struts 1.2 迁移 -> Struts2 vs Spring-MVC(主要针对 Struts1.2 taglib 支持)

coder 2023-09-02 原文

主要问题:如果我的应用程序当前正在使用 Struts 1.x - 我正在考虑迁移到 Spring-MVC 或 Struts2 中的 MVC 框架 - 是否有任何一个可以使它更容易从 Struts1.2 迁移?

澄清一下,我不是在问 SpringMVC 还是 Struts2 总体上更好(SO 上有许多现有的 Q's 可以解决这个问题)- 只是哪个更容易从 Struts1.2 迁移到。

从迁移的角度来看,我最感兴趣的一点是:继续(开始时)在 JSP 页面中使用 struts1.x 的 taglib 的可能性,同时更改为 Struts2 的 (或 SpringMVC 的)后端 API。(换句话说,这些框架中的任何一个都可以支持 Struts1.x 的 taglib 作为插件)? [注意:这不是一个长期的解决方案——但会减少集成的痛苦,因为不需要立即重写 JSP。我认为这个问题有道理 - 如果没有,请解释原因]

话虽如此,我当然对任何其他迁移优势感兴趣。


一些背景:

我正在开发一个应用程序,其 MVC 层是通过 Struts 1.2 编写的。我们也在使用 Spring IOC——尽管该应用程序目前在 Struts 层和 Spring 的 DI 设施之间没有强大的集成。 (注意:这是我们计划在重构时纠正的问题,但我的理解是,通过一些计划 - 即使在使用 Spring IOC + Struts2 组合时也可以正确/有效地完成。)

作为改进/重构代码库的一部分——我们希望升级到更现代的 MVC 框架(以消除对 Action/Form 类的需求,并在可能的情况下使用基于注释的配置等)但保持整体经典 MVC 风格(即目前对跳跃到 JSF、Tapestry、GWT、Flex、Play 等不感兴趣。我知道这些是非常非常不同的东西——将它们放在一起只是为了给出一个总体思路..) 此外,我们的愿望是采用具有合理牵引力/动力的东西 - 因此出于这个原因将 Stripes 排除在外。这似乎只剩下 Spring-MVC 和 Struts2 作为竞争者(尽管如果有其他具有类似风格且具有强大行业吸引力的东西 - 我们当然会考虑它)

可以肯定的是,切换到其中任何一个都需要大量的工作 - 但计划是在模块化级别上进行。出于这个原因,如果其中任何一个支持 Struts 1.2 的 taglib - 它将使切换/测试更容易(因为我们可以在新 API 中编写特定模块的“控制”实现 - 并让第二个服务器运行旧的 Struts1 .2 使用相同的 jsps 实现。QA 测试在某种程度上将是“同类”。这是否有意义,或者这种方法(如果可行)是否会导致比它解决的问题更多的麻烦?

此外,如上所述,虽然我的主要问题是关于使用 Spring-MVC 或 Struts2 运行 struts1.2 的 taglib - 我也对 Struts2-vs-Spring-MVC 的任何其他迁移优势感兴趣。

最佳答案

如果将Strut1.2迁移到Spring MVC,如果我们在WEB-INF/lib中包含struts.jar,我们仍然可以在Spring MVC中使用strut1.2 taglib,也就是说你仍然可以使用bean:define, bean: write... logic:present, logic:equal ... (Struts1.2 taglib) in JSP ,唯一的变化是struts 1.2 form taglib (html:text,html:error html:form ...) 应该改成spring form taglib (form:path, form:form,form:path,form:error ...) 以便我们可以将表单字段绑定(bind)到命令类数据,referenceData 或通过 formBackObject 初始化的命令数据以使用 spring MVC JSP 特性

关于java - 从 Struts 1.2 迁移 -> Struts2 vs Spring-MVC(主要针对 Struts1.2 taglib 支持),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3436731/

有关java - 从 Struts 1.2 迁移 -> Struts2 vs Spring-MVC(主要针对 Struts1.2 taglib 支持)的更多相关文章

  1. javascript - 在 javascript 中使用 jquery 加载 Struts 2 Action - 2

    我正在尝试通过使用jquery来定位div和加载内容的struts操作,从javascript重新加载目标div。有人知道怎么做吗?问题是我如何使用(javascript)jquery来执行此操作。BR,托拜厄斯 最佳答案 最简单的做法是使用jQuery.load()功能。$('#targetDivId').load('${your.struts.url}',function(){//stufftodowhenthedivhasbeenreloaded});现在明白你应该确保你的操作的响应是一个不是真正完整的HTML页面的页面,因为

  2. java - Struts2:如何在 ActionSupport 中获取 ServletRequest 实例 - 2

    如何在我的操作中获取ServletRequest实例?我实现了ServletRequestAware但我无法在操作中获取请求对象。struts.xmlapplication/json我正在使用Ajax/JavaScript进行调用:req.onreadystatechange=onReadyState;req.open(POST,Cart.action,false);req.setRequestHeader("Content-Type","application/json;charset=utf-8");req.send(JSONstr);JSON对象:vardata={cartIte

  3. javascript - 如何将对象从前端传递到 Struts 2 - 2

    我试图通过JavaScript将一个字段的值发送到Struts2后端,但它返回NullpointerException。....提交表单后,请求将发送到以下JavaScript方法以发送到后端。functionpayslipPayment(){varformValues=$('#myform').serialize();....xmlhttp.open("get","../payslip/pay?"+formValues,false);xmlhttp.send();}请求将按如下方式创建和发送http://localhost/payslip/pay/employee.payslip.i

  4. javascript - struts2:使用 javascript 和 jquery 根据第一个选择值更新第二个选择 - 2

    我正在开发一个struts2项目,其中有3个html选择控件,每个控件都依赖于之前的选择。假设第一个选择是国家,第二个是州,第三个是城市。州选择中的选项列表将被过滤以仅显示该国家/地区的州等。由于其他一些限制,我使用基本的html选择控件而不是struts2。这是我当前如何填充选择的示例:">我认为我需要做的是onchange事件执行ajax调用以根据所选“国家/地区”检索“州”列表。问题是:1.如何使用jquery执行此ajax调用?2.我需要传递什么作为ajax调用的url?只是Action名称?3.如何解析返回结果?我可以从Java代码返回具有“代码”和“标签”以及其他属性的“状

  5. pointers - Golang 编辑从 main() 到函数的 struts 数组 - 2

    希望您能提供帮助,下面是我的代码的简明版本。基本上我将一个结构数组传递给floatInSlice(),其中一个新结构被添加到该数组或一个现有结构AudienceCategory.Sum得到++除b.Sum=b.Sum+1外,其他一切正常现在我知道,如果我想将一个对象作为指针而不是值传递,我需要使用*/&但我似乎无法让它工作,任何帮助都非常有用!typeAudienceCategorystruct{CatintSumint}varcounter=[]AudienceCategory{}funcmain(){fori:=1;i编辑*******终于搞定了,谢谢大家的帮助funcfloatI

  6. 漏洞复现 - - -Struts2(s2-045)远程命令执行漏洞 - 2

    一,Struts2是什么Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。虽

  7. java - struts 中的 web.xml 以及如何使用 struts-config.xml 配置它 - 2

    actionorg.apache.struts.action.ActionServletaction*.do上面的代码是我在为我的项目选择struts框架时由我的IDE自动生成的。我没有看到任何名为action的servlet。请解释一下这个xml是什么意思?编辑:我读到ActionServlet已经配置了struts-config.xml文件。它是如何配置的? 最佳答案 显示的配置文件是这样说的:所有以.do结尾的URL将由名为action的servlet处理名为action的servlet对应类org.apache.struts

  8. java - 没有为 taglib 文件中的文档检测到语法约束(DTD 或 XML 模式) - 2

    eclipse伽利略我怎样才能摆脱警告?应用程序工作正常,看起来像IDE问题或其他问题。我知道我可以禁用警告检查,但这并不是我想要的。 最佳答案 改变:xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/webjsptaglibrary_2_0.xsd"到xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/webjsptaglibrary_2_0.xsd"确

  9. java - 严重 : Error configuring application listener of class org. apache.struts2.tiles.Struts Tiles Listener java.lang.NoClassDefFoundError - 2

    我正在尝试学习在struts2中使用session。所以,我只想实现一个登录/注销、配置文件应用程序。我正在关注互联网上提供的基本教程。但是,它根本不起作用。请帮助我解决以下问题如何解决。Sep19,20155:44:12PMorg.apache.catalina.core.StandardContextlistenerStartSEVERE:Errorconfiguringapplicationlistenerofclassorg.apache.struts2.tiles.StrutsTilesListenerjava.lang.NoClassDefFoundError:org/ap

  10. xml - 为什么struts.xml会出现配置错误? - 2

    我在文件struts.xml中收到配置错误错误Thecontentofelementtype"package"mustmatch"(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)".错误描述是什么意思?struts.xml/securityerror.jsp/error.jsptrueERROR/register.jsp/login.jsp/inde

随机推荐