Spring 3 MVC:没有注释但使用 XML 的应用程序

发布于 2024-10-26 14:06:55 字数 934 浏览 1 评论 0原文

我正在尝试使用 spring 3 MVC 开发应用程序,而不使用注释。 我这样做有几个原因(我喜欢中央配置位置,我不想将 HTTP 特定信息放入我的控制器中,我确实喜欢 XML 文件,并且我的 IDE (intellij IDEA) 对它有很好的支持)。

首先,我需要 URL 到控制器的映射。可以使用 BeanNameUrlHandlerMapping 来实现。尽管此方法已从 3.0 文档中删除(“被注释废弃”),但它仍然有效。

然后我需要将 GET 参数映射到一些具有属性的 bean。在struts中他们默认有它:( 我可以使用BaseCommandController。它已被弃用,但我可以使用 @SuppressWarnings 来摆脱丑陋的消息。 bindAndValidate 将在其后填充命令对象。

至少我需要映射路径变量(来自 uri 模板)以使我的 URL 可读。 我在这里迷路了。 看:https://jira.springsource.org/browse/SPR-5757

BaseCommandController 仅适用于 GET/POST。 我可以使用 UriTemplate 从请求中获取地图。但是 bindAndValidate 接受 HttpServletRequest 并且我无法向其添加参数:地图是只读的。我可以装饰它,但是……太多的技巧!

对于如此简单的需求来说,有太多的技巧。 Hacks、已弃用的类和 3.0 中未记录的 BaseCommandController。

是否可以使用 spring mvc 3.0 制作不带注释的应用程序? 或者我应该为 MVC 使用其他东西(比如 struts-2)?

I am trying to develop application with spring 3 MVC not using annotations.
I have several reasons for it (I like central configuration place, I do not want to put HTTP-specific info in my controller, I do like XML files and my IDE (intellij IDEA) has good support for it).

At first, I need URL-TO-Controller mapping. It can be achieved using BeanNameUrlHandlerMapping. Although this method was eliminated from 3.0 documentation ("obsoleted by annotations") but it still works.

Then I need to map GET parameters to some bean with properties. In struts they have it by default:(
I can use BaseCommandController. It is deprecated but I can use @SuppressWarnings to get rid of ugly message.
bindAndValidate will populate command object after it.

At least I need to map path variables (from uri templates) to make my URLs readable.
And I am lost here.
Look: https://jira.springsource.org/browse/SPR-5757

BaseCommandController works only with GET/POST.
I can fetch map from request using UriTemplate. But bindAndValidate accepts HttpServletRequest and I cannot add parameters to it: map is read-only. I can decorate it but... too many hacks!

Too many hacks for so simple needs. Hacks, deprecated classes and BaseCommandController which is undocumented in 3.0.

Is it possible to make app using spring mvc 3.0 w/o of annotations?
Or I should use something else (like struts-2) for MVC?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文