@RestController
@RequestMapping("/employee")
public class Employee {
@RequestMapping("/save")
public void saveEmployee() {
// saving employee
}
}
Run Code Online (Sandbox Code Playgroud)
@RequestMapping内部如何将请求映射到saveEmployee方法?
假设我有以下控制器及其父类:
@RestController
public class BusinessController extends RootController {
@GetMapping(value = "users", produces = {"application/json"})
@ResponseBody
public String users() {
return "{ \"users\": [] }"
}
@GetMapping(value = "companies", produces = {"application/json"})
@ResponseBody
public String companies() {
return "{ \"companies\": [] }"
}
}
@RestController
@RequestMapping(path = "api")
public class RootController {
}
Run Code Online (Sandbox Code Playgroud)
通过调用以下 URL 来检索数据:
http://app.company.com/api/users
http://app.company.com/api/companies
Run Code Online (Sandbox Code Playgroud)
现在假设我想重命名/api路径,但通过在新 URI 旁边/rest返回 HTTP 状态代码来保持其“可用”301
例如客户请求:
GET /api/users HTTP/1.1
Host: app.company.com
Run Code Online (Sandbox Code Playgroud)
服务器请求:
HTTP/1.1 301 Moved Permanently
Location: http://app.company.com/rest/users …Run Code Online (Sandbox Code Playgroud) spring url-rewriting http-status-code-301 spring-boot request-mapping
我有这个请求映射:
@RequestMapping(value = "/route/to-{destination}-from-{departure}.html", method = {RequestMethod.GET, RequestMethod.HEAD})
Run Code Online (Sandbox Code Playgroud)
我想添加 RequestMapping:
@RequestMapping(value = "/route/to-{destination}.html", method = {RequestMethod.GET, RequestMethod.HEAD})
Run Code Online (Sandbox Code Playgroud)
因此它可以服务所有“不出发”的航线。然而,这会产生冲突,因为“/route/to-destination-from-departure”url实际上也匹配第二个RequestMapping...很公平,所以我的解决方案是指定一个正则表达式:
@RequestMapping(value = "/route/to-{destination:^((?!-from-).)+}.html", method = {RequestMethod.GET, RequestMethod.HEAD})
Run Code Online (Sandbox Code Playgroud)
因此,如果“destination”包含“-from-”,RequestMapping 将不匹配。
而且……这不起作用!第一个 RequestMapping 成功提供了 url“/route/to-barcelona-from-paris.html”,但根本没有提供 url“/route/to-barcelona.html”...我缺少什么?
注意:我不想使用java解决方案,例如有一个“/route/to-{destination}”RequestMapping,然后检查“destination”是否包含“-from-”..:)另外,我不能改变这些路线是因为 SEO...
我想要一个带有基本映射“/user”的 RestController 类(因此不同的函数将具有“/user/add”、“/user/remove”等路径或使用 POST/GET 等)
这是我不明白并且无法开始工作的部分:
@RestController
public class UserController {
@GetMapping("/user")
public Response login(Principal principal){
//some output
}
}
Run Code Online (Sandbox Code Playgroud)
这种情况下的预期行为是我可以在“/user”下访问我的输出。这按预期工作。现在,如果我将其修改为以下内容(因为此控制器中的所有功能都应该有一个以“/user”开头的路径,这会更清晰)
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/")
public Response login(Principal principal){
//some output
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个 404-Error 页面并且无法再访问“/user”我发现的所有示例都使用相同的语法(或者有时@RequestMapping(path="/user") 但它不起作用)并且我不知道为什么它不起作用。有人能告诉我我的错误在哪里吗?
我想配置Spring将所有请求重定向到特定的Controller,而不管URL(长度和参数).我应该如何在RequestMapping注释中提供URL模式/正则表达式.我尝试使用下面的代码,但它无法正常工作.在这方面的任何帮助深表感谢.
@Controller
@RequestMapping("/*")
public class ServiceController {
@RequestMapping( method = RequestMethod.GET, value = "*" )
public void getProjectList(HttpServletRequest httpServletRequest,Model model){
}
}
Run Code Online (Sandbox Code Playgroud) spring spring-mvc restful-url spring-restcontroller request-mapping
你好StackOverFlow(s)
我正在运行这个问题,因为现在超过2个小时这很简单
我正在尝试使用$ .ajax POST调用将JSON对象发送到Spring Controller
我正在使用AngularJS,但这一点很有用
这是服务器和客户端的代码以及弹簧配置
提前致谢
JQuery:
$scope.push = function() {
$.ajax({
type: "PUT",
url:"rest/todo/greeting/",
data : {id:"1",title:"ajax",description:"ajax"},
dataType: "json",
contentType : "application/json",
success : function(data) {
$log.info(data)
}
})
}
Run Code Online (Sandbox Code Playgroud)
弹簧控制器:
@Controller
@RequestMapping("/todo")
public class TodoController {
@RequestMapping(value = "/greeting", method = RequestMethod.PUT,consumes="application/json",produces="text/html")
public @ResponseBody String push(@RequestBody Todo todo) {
System.out.println(todo.getTitle());
return "test";
}
Run Code Online (Sandbox Code Playgroud)
}
弹簧配置:
<mvc:annotation-driven />
<context:component-scan base-package="org.lab.todo.controller" />
<bean id="defaultViews" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" />
Run Code Online (Sandbox Code Playgroud)
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<listener> …Run Code Online (Sandbox Code Playgroud) 我是Spring MVC的新手,我有以下疑问.
在控制器中,我有一个以这种方式注释的方法:
@Controller
@RequestMapping(value = "/users")
public class UserController {
@RequestMapping(params = "register")
public String createForm(Model model) {
model.addAttribute("user", new Customer());
return "user/register";
}
}
Run Code Online (Sandbox Code Playgroud)
所以这个方法处理HTTP请求到URL / users?寄存器,其中register是一个参数(因为整个类处理对/ users资源的请求).
如果使用params ="register"我使用以下的syntaxt 是同样的事情:
@Controller
public class UserController {
@RequestMapping("/users/{register}")
public String createForm(Model model) {
model.addAttribute("user", new Customer());
return "user/register";
}
}
Run Code Online (Sandbox Code Playgroud)
我已经删除了类级别的映射,并使用了@RequestMapping("/ users/{register}").
它与第一个例子的含义相同吗?
线路1:
public ModelAndView viewCustomerDetails(@RequestParam("custId") Integer customerId, @RequestParam("categoryName") String categoryName, HttpServletRequest request) throws BusinessException{
Run Code Online (Sandbox Code Playgroud)
线路2:
public ModelAndView viewCustomerDetails(@RequestMapping("custId") Integer customerId, @RequestMapping("categoryName") String categoryName, HttpServletRequest request) throws BusinessException{
Run Code Online (Sandbox Code Playgroud)
我要去深入我的项目代码,并具有一定的混乱@RequestParam和@RequestMapping一些时间,我发现@RequestParam有的时候@RequestMapping.在我的理解中,两者都将分配custId给customerId数据成员的值.
我的jsp文件的一部分:
<form:input mandatory="true" id="CustNameTxt" path="custName" cssClass="txtfield controlWidth" readonly="false" />
Run Code Online (Sandbox Code Playgroud)
为了更好地理解我的问题,我已经在Line2中进行了编辑
spring ×7
java ×5
spring-mvc ×4
spring-boot ×2
ajax ×1
annotations ×1
jquery ×1
regex ×1
restful-url ×1