当前位置: 首页 > 面试题库 >

Spring MVC-请求映射,两个带有两个不同参数的网址

苏浩瀚
2023-03-14
问题内容

在Spring中,是否可能有一个方法,其中每个方法的两个参数都具有不同的参数,而两个URL却不同?

下面是伪代码

@RequestMethod(URL1-param1, URL2-param2)
public void handleAction(@ModelAttribute("A") A a, ...) {
}

同时,ULR1在其他一些控制器中被映射为

@RequestMethod(URL1)
public void handleAction1(@ModelAttribute("A") A a, ...) {
}

问题答案:

更新:看来您的问题完全不同。

不,您不能在不同的控制器中使用相同的网址和不同的参数。而且这没有多大意义-
url指定了资源或操作,并且不能在两个控制器中以完全相同的方式命名(表示不同的行为)。

您有两种选择:

  • 使用不同的URL
  • 在misc控制器中使用一种方法,该方法根据请求参数调度到不同的控制器(被注入)。

原始答案:

不会。但是您可以有两种方法可以完成相同的操作:

@RequestMethod("/foo")
public void foo(@ModelAttribute("A") A a) {
    foobar(a, null);
}

@RequestMethod("/bar")
public void bar(@ModelAttribute("B") B b) {
    foobar(null, b);
}

如果我没有正确理解,并且您想要相同的ModelAttribute,则只需:

@RequestMapping(value={"/foo", "/bar"})

最后-如果您需要不同的请求参数,则可以@RequestParam(required=false)用来列出所有可能的参数。



 类似资料:
  • 我有两个数据格式不同但值相同的表。 表一: 表二: 表1和表2之间的关系是多对一。此表的值与上面的日期格式相同。我现在的任务是映射这些表。我如何在ERD图中显示这些。我必须创建一个新表吗?

  • 我有两个地图,键为整数,值为双倍。 我想创建第三个按键排序的映射,值将是两个映射的双精度列表。 地图1: Map2: 最终地图: 如上所述,如果一个地图中的一个键在另一个地图中丢失,则另一个地图的最终地图中的值应默认为0.00 我可以使用putAll方法将所有键放入第三张地图。但如何按照我的意愿设定这些值呢? 感谢阅读!

  • 问题内容: 我有两个数组,一个带有url,一个带有内容。他们看起来像这样: 如何同时映射两个数组,并在新创建的元素中使用它们的值? 我需要使用我的reactplayer的url值和内容的值作为播放器下方的文本。 所以它应该看起来像这样: 这可能吗?更好的设置方法是什么? 问题答案: 使用的第二个参数(即当前元素的索引),可以访问第二个数组的正确元素。 如果您的项目中有其中一种库,那么这是该库中各种

  • 问题内容: import scrapy from selenium import webdriver 此解决方案效果很好,但是它对相同的URL两次请求,一个是scrapy Scheduler,另一个是Selenium Web驱动程序。 与没有selenium的苛刻要求相比,完成这项工作将花费两倍的时间。如何避免这种情况? 问题答案: 这是解决这个问题的有用技巧。 *为硒 *创建一个Web服务 ,在

  • 我改变了切入点的顺序,它总是排在第二位。关于如何解决这个问题有什么想法吗? 更新 一旦我发布了这个问题,我就有了一个想法。我这样更改了切入点: 现在异常消失了,但仍然有一个小问题(我想这个问题更容易解决):因为ArrayList实现了可序列化,所以至少在我使用ArrayList的测试用例中,两个切入点都被执行了。 我将对此进行研究,并发布我的发现,但也感谢您的帮助;) 我将代码改为只使用一个切入点

  • 问题内容: 我有一个方案,其中一个网址“ serachUser”可能带有两个不同的值(请求参数)userId或UserName。 为此,我创建了两种方法 但我越来越模糊的映射发现异常。Spring有任何方法可以处理这种情况。 问题答案: 你可以使用该参数按HTTP参数进行过滤。在你的情况下,它将类似于:

  • 我是初学者,我想通过使用两个旧映射hm1和hm2创建一个新映射hm3,在该映射中,我需要第二个映射的值作为键,第一个映射的值作为值,例如:如果映射hm1包含a1作为key1和abc作为value1,它还包含a2作为key2和xyz作为value2,并且还有另一个映射hm2,它包含a1作为key1和b1作为value1,还包含a2作为key2和b2作为value2,那么在映射hm3中,我需要b1作为