任何人都可以在春天给我建议路由机制。
我使用thymeleaf作为我的观点,我想在视图中使用我的网址的类名和方法名称 - 就像在playframework中一样。
但我喜欢在春天我在控制器方法声明之前定义url。
为你的消化做准备。感谢。
答案 0 :(得分:3)
从4.1版开始,Spring Framework提供了一种从模板生成资源路由的方法(即视图中的反向路由)。
您可以查看the reference documentation on the subject,但它基本上是使用自动生成的命名路由。
我不知道Thymeleaf是否支持标准方言,但是you could quite easily extend it;如果没有,这可能是Thymeleaf项目的一个特色。
假设你有一个像这样的MyUserController:
@Controller
public class MyResourceController {
@RequestMapping("/user/{name}")
public String showUser(String name, Model model) {
...
return "show";
}
}
使用这样的方言,你可以参考这样的动作:
<a th:uri="mvcUrl('MRC#ShowUser').buildAndExpand('bob')">Show user Bob</a>
<!-- will generate "/user/bob" -->
答案 1 :(得分:1)
这是spring框架中的一般流程。
每当用户发出请求时,它将首先转到Spring的DispatcherServlet。 DispatcherServlet作业是将请求发送到spring mvc controller(自定义控制器)
您可以像这样定义自定义控制器:
控制器:(代码段)
package nl.springexamples.mvc;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String test(){
return "test";
}
}
在servlet-上下文文件中,提及控制器的目录/包路径。
示例:<context:component-scan base-package="nl.springexamples.mvc"/>
在上面的控制器中,它返回字符串'test',它是视图文件的名称(通常是jsp)。
JSP文件: test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1> Welcome to Spring!!!</h1>
</body>
</html>
示例:如何定义internalViewResolver如下所示
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value ="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
我认为,这几乎是关于spring mvc和它的路由流程。我希望它对你有帮助。