我加入了一个使用spring框架的项目,所有的调用都是由ajax请求完成的,成功后的重定向是在视图中定义的,并通过隐藏的输入传递给ajax JS函数(所以最后返回ModelAndView)对控制器中的每个功能都没有任何影响)。我觉得它弄糟了代码我不对吗?我仍然认为这样做是因为他们想要获得使用CRUD映射到post,get,put,delete的restful app的好处,但最终他们失去了从控制器本身重定向的能力。
答案 0 :(得分:6)
我通常使用和推荐的模式如下:
这种方法的优点:
答案 1 :(得分:2)
的Ajax:
HTML:
我只是花了很少的时间在春天,所以我不能判断一切。可能春天的发展模式本身让你感到不舒服。在Java中,您习惯于在OOP中感受到。 MVC的一般概念与html AJAX等混合。请记住,您有一个服务器/客户端架构,并且您希望所有组件都是不同的。这可以通过Google Web Toolkit很好地完成。
所以我读到的是你刷新浏览器。如果你进行刷新,AJAX的好处在哪里?不知道你的应用程序,但知道有些事情在Java中不能这么简单(如果你正在调整外国代码),你做得对,应该考虑你的程序序列。
除了我能想到的AJAX HTML之外唯一不同的方式是可以使用ActiveX组件,Flash或html5 Websockets完成的Socket连接。但这通常不是你用于简单形式的东西。
顺便说一句。已知GET字符串最大约为2000个字符,但执行速度稍快,因为您不发送POST等标题。
在我的观点中:关于性能,最好是减少请求并吐出更多的html而不是尝试强迫自己在各处制作ajax。既然你失去了你的SEO优势.....
答案 2 :(得分:0)
建议仅使用GET& PUT Web应用程序开发方法中的设计模式。无论你只需要发送一个或几乎两个输入参数来获得响应,你应该使用GET,每当你需要发送2个以上的参数输入到HTTP资源,即URI,那么你可以使用POST