- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
使用 Spring 3.1.2
如何从 jsp 引用 CONTROLLER(不是方法)RequestMapping 的注释值,以便我可以构建相对于 Controller 的 URL。如果引用了方法级请求映射,它将导致我的链接不起作用,因此它们不能以任何方式成为 this 的一部分。
例如(注意这个 Controller 的映射是“/foo/test”):
@Controller
@RequestMapping("/foo/test")
public class FooController {
@RequestMapping(value="/this", method=RequestMethod.GET)
public String getThis() {
return "test/this";
}
@RequestMapping(value="/that", method=RequestMethod.GET)
public String getThat() {
return "test/that";
}
@RequestMapping(value="/other", method=RequestMethod.GET)
public String getOther() {
return "test/other";
}
}
...以及来 self 的 this.jsp:
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
<s:url value="${controllerRequestMapping}" var="baseUrl"/>
<a href="${baseUrl}/that">That</a>
<a href="${baseUrl}/other">Other</a>
我需要访问 RequestMapping 的原因是因为我的 View 可能会从多个 Controller 访问。请注意,此 Controller 的映射是“/bar/test”!
@Controller
@RequestMapping("/bar/test")
public class BarController {
@RequestMapping(value="/this", method=RequestMethod.GET)
public String getThis() {
return "test/this";
}
@RequestMapping(value="/that", method=RequestMethod.GET)
public String getThat() {
return "test/that";
}
@RequestMapping(value="/other", method=RequestMethod.GET)
public String getOther() {
return "test/other";
}
}
我的一些 Controller 级请求映射也有路径变量,所以只获取请求映射的字符串值是行不通的。它必须得到解决:
@Controller
@RequestMapping("/something/{anything}/test/")
public class SomethingController {
...
}
更新
也许如果有一种方法可以通过在 Spring URL 标记之前将 Controller 请求映射附加到它来修改上下文路径,那将解决问题。
contextPath = contextPath/controllerRequestMapping
然后,我可以做这样的事情,因为我相信 Spring 会自动检索当前上下文路径:
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
<a href="<s:url value="/that"/>">That</a>
<a href="<s:url value="/other"/>">Other</a>
当然,这将是最佳选择!想法?想法...?
提前致谢!
最佳答案
您可以使用 Servlet API 获取 URI。据我所知,没有“Spring”方法可以做到这一点。
@RequestMapping(value="/this", method=RequestMethod.GET)
public String getThis(HttpServletRequest request, Model m) {
m.addAttribute("path", request.getRequestURI());
return "test/this";
}
然后在您的 JSP 中:
<a href="${path}">This</a>
有关 HttpServletRequest 的更多信息,see the API here .
关于java - Spring: Controller @RequestMapping到jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647605/
如何在Spring中忽略类级别@RequestMapping("/home")并直接调用方法级别@RequestMapping("/users")? @Controller @RequestMappi
让我们假设以下 Controller : @RestController public class MyController { @RequestMapping(method = GET, pat
我在使用 Spring Boot 时遇到了一些问题。 当我使用 @RequestMapping(value = "/home") 时,一切正常。但是当我使用 @RequestMapping(name
我正在尝试创建一个restful API(使用Spring Boot v2.0.0.Release),我希望有一个端点,但我希望有两种可能的用途: GET /time - outputs curren
我已经被这个错误困扰了几个小时。。我的pom.xml。应用程序未启动。所有的Spring框架依赖于相同的版本,但仍然得到相同的错误。。更新。MVN依赖的结果:树。看起来这里一切都很好。
我有以下三个 REST API 方法: @RequestMapping(value = "/{name1}", method = RequestMethod.GET) public Objec
我正在尝试为 spring @RequestMapping 注释创建值属性以像这样映射 url /educationDistrict/308/action/resetAddressesForYear/
如何定义 @RequestMapping 方法来显式允许匿名(未经授权)访问? 以下方法不起作用,总是收到 401 Unauthorized: @RequestMapping("/test") @Se
想象一下我有一个像这样的 Spring MVC Controller : @Controller @RequestMapping("/base-url") public class MyControl
如何处理除资源映射文件夹之外的所有 URL 请求? 在这个例子中,我处理了所有路径(这就是我想要的),但现在即使我设置也无法访问资源文件夹 里面dispatcher-servlet.xml @Req
我需要有一个/jsp/login 和/jsp/login?error 的映射 请注意,我无法使用/jsp/login?error=someval 然后检查参数是否具有该值或默认值。在这种情况下,不允许
让 Tomcat 启动并自动显示 index.jsp 文件的内容没有任何问题。然而,当我尝试使用 @Controller 和 @RequestMapping 时,我遇到了错误。这是我的 Control
我有以下文件夹结构: WEB-INF/ -- 页数/ ----home.jsp ----admin.jsp ----admin2.jsp ----admin3.jsp 我有以下 Controller
我正在使用 Spring Boot,并尝试显示 get 请求。我正在使用 2 个类:Greeting.java 和 GreetingController: package greeting;
我正在尝试使用 @RequestMapping与 consumes -元素。阅读API-document它适用于 Content-Type - 请求头。但是,使用 @RequestMapping(co
我已经为此打开了一个问题 here.但我也想问一下 stackoverflow 的人。 @Controller @RequestMapping("/xxx") public class MyContr
我想在我的 Spring Boot 应用程序中创建一个自定义注释,它总是向我的类级别 RequestMapping 路径 添加一个前缀。 我的 Controller : import com.sage
鉴于下面的@Controller,即使我向 webApp 发送 Get 请求, Controller 也会运行 homePage 方法。 @RestController @RequestMapping
我正在尝试设置 Controller ,但不幸的是无法查看输出...一切都正确渲染。当我访问 http://localhost:8080/CMT/content/edit 时,我得到一个 404 页面
在我的 Spring Controller 中,我创建了 3 个方法。方法 1 和方法 2 工作正常,但方法 3 给我带来问题 问题: org.springframework.web.servlet.
我是一名优秀的程序员,十分优秀!