当前位置: 首页 > 知识库问答 >
问题:

Spring MVC 3.0-限制通过dispatcher servlet路由的内容

江新
2023-03-14

我想使用Spring MVC3.0为AJAX事务构建接口。我希望将结果作为JSON返回,但不一定希望使用JSP构建web页面。我只希望通过DispatcherServlet拦截/路由对控制器的请求,并且项目的其余部分继续像常规Java webapp那样工作,而不需要Spring集成。

我的想法是将web.xml中的servlet-mapping url模式定义为类似于“/controller/*”的模式,然后将我的控制器中的类级别@RequestMapping定义为类似于@RequestMapping(“/controller/colors”)的模式,最后在方法级别定义为@RequestMapping(value=“/controller/colors/{name}”,method=RequestMethod.get)。

唯一的问题是,我不确定是否需要在所有的RequestMappings中继续添加“/Controller”,而且无论尝试什么组合,我都会得到404个requested resource not available错误。

这里的最终目标是能够在web浏览器中键入“http://localhost:8080/myproject/controller/colors/red”,并将RGB值作为JSON字符串返回。

共有1个答案

隗翰海
2023-03-14

你不是正确的需要添加整个路径到处,路径是累积的-

如果Spring的DispatcherServlet有/controller/*的servlet映射,那么对/controller/*的任何调用现在都将由DispatcherServlet处理,您只需处理@requestmapping中的其余路径信息,这样您的控制器就可以

@Controller
@RequestMapping("/colors")
public class MyController{

 @RequestMapping("/{name} 
 public String myMappedMethod(@PathVariable("name") String name, ..){
 }

}

因此,现在将通过对/controller/colors/blue等的调用来处理该方法

 类似资料:
  • 问题内容: 是否可以通过react-router中的组件传递对象? 就像是: 与我从to 组件传递过来的方式相同。 如果不可能的话,最好的方法是什么: 我有一个React + Flux应用程序,并且用一些数据渲染了表格。我想做的是,当我单击其中一行时,它将带我到该行的一些 详细信息 组件。该行包含了我需要的所有数据,所以我认为如果可以将其传递通过,那将是很好的。 另一种选择是在url中传递行的,在

  • 在Symfony 4中是否可以通过yaml设置路由名称。 如此古老的诠释 Yaml注释 看起来yaml不支持名称键。只支持以下键: “资源”、“类型”、“前缀”、“路径”、“主机”、“方案”、“方法”、“默认值”、“要求”、“选项”、“条件”、“控制器”。 或者密钥“login”是名称吗?

  • 本文向大家介绍vue-router 控制路由权限的实现,包括了vue-router 控制路由权限的实现的使用技巧和注意事项,需要的朋友参考一下 注意:vue-router是无法完全控制前端路由权限。 1、实现思路 使用vue-router实例函数addRoutes动态添加路由规则,不多废话直接上思维导图: 2、实现步骤 2.1、路由匹配判断 通过vue-router前置守卫beforeEach中参

  • 问题内容: 是否可以仅针对XHR请求限制Symfony 2路由?我想声明只能通过AJAX访问的路由。 我不想像这样在每个AJAX特定操作中添加一些额外的行: 我想定义: AJAX请求的一条规则 对相同URL进行GET / POST请求的一条规则 为了避开上述情况。 问题答案: 我知道这个问题有点老,但是与此同时 ,Symfony 2.4* 中引入 了 一种 新的解决方法 。 * 匹配表达式 对于a

  • 问题内容: 是否存在Java 8流操作来限制(可能是无限的)Stream直到第一个元素与谓词不匹配? 在Java 9中,我们可以takeWhile像下面的示例那样使用它来打印所有小于10的数字。 由于Java 8中没有这样的操作,以一般方式实现它的最佳方法是什么? 问题答案: 这样的操作在Java 8中应该是可能的,但不一定能有效地完成-例如,您不必并行化这样的操作,因为您必须按顺序查看元素。 该