问题标签 [spring-mvc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2693 浏览

java - Spring MVC isFormSubmission() 等效于注释?

使用 Spring MVC,很容易表达一个概念,例如“如果用户使用 POST 或者如果他们包含 'isSubmit' 参数,则他们正在提交表单”。您只需扩展SimpleFormController并覆盖该isFormSubmission方法。

然而,Spring MVC 现在使用这些简洁的注解@RequestMapping来处理请求。 @RequestMapping对于某人是否使用 GET 或 POST 有一个明显的过滤器,但我看不到对 SimpleFormController 提供的所有有用逻辑的任何内在支持。我仍然可以使用注释吗?

0 投票
2 回答
6719 浏览

spring - 是否可以在 Spring 绑定之前在 @RequestMapping 方法中手动设置命令对象?

我有一个 JSP,其中有一个 Spring 表单。在呈现 JSP 之前,将表单的命令对象添加到控制器中。Spring 将 JSP 中的表单绑定到这个命令对象,并在提交 NEW 实例时正确处理它。

但是,我想通过 DWR 保留命令对象(也可以正常工作),然后将表单提交给控制器。在表单提交给控制器的那一刻,命令对象不再是一个新对象,而是一个需要更新的持久化对象。这是我希望表单元素自动绑定到命令对象并通过绑定进行更新的地方,但它们没有被绑定。

简单示例:我将向 中添加一个新TaskModelMap,以便 Spring 表单将绑定到该命令对象。但是,我不会提交新的,而是通过 DWRTask持久化新Task的,这将返回 ID,然后在将表单提交到控制器之前继续编辑任务。

控制器类

弹簧形式

可以在任何提交后绑定发生之前将 Spring 绑定命令对象设置为持久对象吗?

0 投票
2 回答
30480 浏览

java - Hibernate + Spring 使用多个数据源?

我正在开发一个使用 Spring MVC 2.5 和 Hibernate 的 Web 应用程序。

应用程序的要求之一是它必须能够将一些对象导出到外部数据库。我想我不妨使用我现有的数据层并将对象保存到外部源。

我是 Spring 和 Hibernate 的新手,我想我只是想知道我应该如何处理这个问题。现在一切都通过注释自动连接起来。我猜我必须创建一个新的 dataSource bean、一个新的 sessionFactory 和一个 transactionManager……也许……但是……

  1. 我只希望在用户专门“导出”时可以使用与外部数据源的连接。

  2. 自动装配会妨碍我吗?当我为导出过程实例化 DAO 时,如何告诉 Spring 注入适当的 sessionFactory?(我通过构造函数自动装配)我是否应该以编程方式创建我的会话工厂(等),然后手动实例化我的 DAO?如果是这样,这会“覆盖”自动装配注释吗?

我想我不需要回答上述问题,如果有人可以引导我完成让这样的事情起作用的基本过程。谢谢!

0 投票
2 回答
12575 浏览

java - 测试 Spring MVC 注释映射

使用 Spring MVC,您可以指定特定 URL 将由特定方法处理,并且您可以指定特定参数将映射到特定参数,如下所示:

这一切都很好,但现在我想测试一个带有 imageId 参数的 http 请求是否会正确调用这个方法。换句话说,如果我删除或更改任何注释,我想要一个会中断的测试。有没有办法做到这一点?

很容易测试 getImage 是否正常工作。我可以创建一个 ImageController 并使用适当的参数调用 getImage 。然而,这只是测试的一半。另一半的测试一定是getImage()是否会被Spring框架在适当的HTTP请求进来的时候调用。我感觉这部分我也需要测试一下,尤其是我的@RequestMapping注解越来越复杂,调用复杂的参数条件。

如果我删除第 4 行,你能告诉我一个会中断的测试@RequestMapping("getImage")吗?

0 投票
6 回答
1290 浏览

web-applications - 在 Web 应用程序中应该如何处理业务错误?

假设我有一个可以将 Persons 存储在数据库中的 Web 应用程序。每个人都必须有一个唯一的电子邮件地址(或用户名或其他)。如果用户尝试使用已存在的电子邮件地址添加人员,则应返回表单并显示错误消息(就像在典型的验证失败期间一样)。

这种错误通常是如何从服务层冒泡到控制器然后到视图的?服务方法应该抛出异常让控制器捕获,还是返回一个值或某种结果对象?

如果我最终想使用我的服务层来生成 Web 服务,这是否会改变我的操作方式?

任何建议或最佳实践/示例应用程序的链接将不胜感激。

0 投票
1 回答
793 浏览

java - Spring 是否会结合 MVC 和 WebFlow?

我想我曾经在某个地方读过 Juergen Holler 说 Spring 的未来目标是结合 Spring MVC 和 WebFlow ......

现在还是这样吗?

目前它们似乎仍然是相当独立的项目,WebFlow 被推荐为 MVC 的扩展。作为开发人员,如果我可以同时使用这两种控制器并以相同的方式(Java 或 XML)定义我的所有控制器,那就太好了。

0 投票
3 回答
906 浏览

grails - Grails 安全问题和搜索引擎优化

我正在尝试构建一个控制逻辑,它依赖于当前的 gsp 页面来调用一个动作,是否有一个标签或会话方法可以用来识别当前的 gsp 页面

我想限制对除 singup 和登录之外的所有 GSP 的访问,因此如果用户打开任何其他 gsp,他将被重定向到注册页面,并且他也将能够导航到登录页面。

我试图实现的逻辑是这样的,如果 current_Page 是 login.gsp 或 singup.gsp 然后什么也不做重定向到注册 //用户可以导航到登录页面也没有问题

我想在主布局中添加这个逻辑,以便在所有应用程序域中实现它。

我想知道是否有使用 RequestmapController 或 UrlMappings 的替代方法?

任何有 springMVC 经验的人都可以提供帮助,因为 Grails 构建在 SpringMVC 之上,而 SpringMVC 又构建在标准 servlet 框架之上!

注意:我正在使用 Acegi 插件

备注:应用程序如何在实现这种安全机制的情况下对 SEO 友好(即 Google 索引)?

0 投票
4 回答
7482 浏览

spring - 使用 @Transactional 和 Spring 模板有什么区别?

如果我在我的 DAO 中使用 @Transactional,我的所有 EntityManager 查询都会被提交并关闭吗?还是我需要使用 Spring 模板(JPA 模板、Hibernate 模板)?使用 @Transactional 和 Spring 模板有什么区别?

0 投票
3 回答
28131 浏览

unit-testing - 使用注释时模拟 Spring MVC BindingResult

我正在迁移 Spring MVC 控制器以使用较新的样式注释,并希望对验证命令对象的控制器方法进行单元测试(请参见下面的简单示例)。

我的问题是我必须在单元测试中调用控制器的方法,并提供模拟值以满足其签名以正确执行代码,并且我无法弄清楚如何模拟 BindingResult。

在旧样式的 Controller 中,签名只是简单地采用了 HttpServletRequest 和 HttpServletResponse,它们很容易被模拟,但是由于新注释样式的灵活性,人们必须通过签名传递更多内容。

如何模拟 Spring BindingResult 以在单元测试中使用?

0 投票
2 回答
4458 浏览

java - 如何从域对象创建 JSON 视图?

我正在创建基于 AJAX 的 Web 应用程序的服务器端实现,其中客户端接收响应,这些响应是序列化为 JSON 的域对象。为了提供通用的外观和感觉,我想为不同类型的域对象创建模板,并将这些模板重新用作多个控制器的 Spring 视图。

例如,假设我有以下对象图:

A - B - C

其中 A 和 C 具有多对多关系。当我作为 AJAX 请求的结果返回 A 类型的对象时,我想在 B 和 C 表中返回其关联数据。但是,当我返回 C 类型的对象作为结果时,我只想返回表 C 中的数据。

到目前为止,我发现的唯一解决方案是在控制器中创建一个自定义数据绑定器;但是我相信这个用例更适合作为可以在许多控制器之间共享的视图。是否存在解决方案?