gpt4 book ai didi

Spring+JSP url构建最佳实践

转载 作者:IT老高 更新时间:2023-10-28 13:55:14 25 4
gpt4 key购买 nike

我想知道在 JSP 中处理 Spring Controller 是否有任何好的做法。

假设我有 Controller :

@Controller
class FooController {

// Don't bother about semantic of this query right now
@RequestMapping("/search/{applicationId}")
public String handleSearch(@PathVariable String applicationId) {
[...]
}
}

当然我可以用 JSP 写:

<c:url value="/search/${application.id}" />

但是那时很难更改网址。如果您熟悉 Rails/Grails,那么您现在是如何解决这个问题的:

redirect_to(:controller => 'foo', :action = 'search')

但是在 Spring 中,UrlMappers 非常多。每个 UrlMapper 都有自己的语义和绑定(bind)方案。 Rails 类似的方案根本行不通(除非你自己实现它)。我的问题是:有没有更方便的方法可以在 Spring 中从 JSP 寻址 Controller ?

最佳答案

我希望我能理解你的问题。我想你问的是当 url 字符串在 jsp 和 Controller 映射中时如何维护 url。

你的 Controller 应该做逻辑,你的 JSP 应该做输出。构造一个 Url 应该是处理它的 Controller 的责任。所以

class SearchController {

@RequestMapping("/search/{applicationId}")
public String handleSearch(@PathVariable String applicationId) {
[...]
}

public String getUrl(Long applicationId) {
return "/search/" + applicationId;
}
}

class StartController {
private SearchController controller;

@ModelAttribute("searchUrl")
public String getSearchUrl() {
return fooController.getUrl(applicationId);
}
}

在你的 start.jsp 中做

 <c:url value="${searchUrl}" />

关于Spring+JSP url构建最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2528614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com