gpt4 book ai didi

jquery - Spring mvc 3 在 url 中的 "#"之后附加内容?例如www.example.com/example#ui-tabs-4

转载 作者:行者123 更新时间:2023-12-01 08:01:16 24 4
gpt4 key购买 nike

这是我的 Controller 代码

@RequestMapping(value = "example.htm", method = RequestMethod.GET)
public ModelAndView showMasterForm(ModelMap model)
{
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
MasterJDBCTemplate dao = (MasterJDBCTemplate)context.getBean("masterJDBCTemplate");
List<String> stateList = dao.getStateList();
model.addAttribute("stateList", stateList);
return new ModelAndView("admin/master/example","command" ,new BranchChannelMaster());
}

这会将我带到类似 www.example.com/example 的 URL。我该怎么做才能访问 www.example.com/example#ui-tabs-4

我遇到这种情况是因为我正在使用 jQuery-ui http://jqueryui.com/tabs/#ajax现在我想以表格格式显示结果。

最佳答案

HTML 中的“#”字符通常表示页面上的 anchor 。它允许您在某处设置 anchor ,然后通过页面上的链接跳转到该 anchor 。例如:

<html>
<body>
<a href="#news">Go to News</a>
<!-- ...some other HTML -->
<a name="news" />

<body>
</html>

在该示例中,我创建了一个链接,该链接将跳转到页面的“新闻”部分。然后,我可以传递末尾带有 #news 的 URL,并且浏览器应该足够智能,可以跳转到页面的该部分。

在我看来,您想要做的事情与我期望浏览器的工作方式不一致。我认为浏览器会吞掉 # 之后的所有内容,期望在页面中的某个地方看到它,这样它就可以跳转到它。我可能是错的,不幸的是我无法编写任何测试代码来证明某种方式与否。我想,我会很简单地做到这一点。

使用您的示例,我希望您应该将 @RequestMapping 更改为:

@RequestMapping(value = "example.htm#ui-tabs-4", method = RequestMethod.GET)

理论上,这会改变您接受您建议的 URL 模式的方法。如果你想让“#”后面的内容成为变量,你可以这样做:

@RequestMapping(value = "example.htm#{tabName}", method = RequestMethod.GET)
public ModelAndView showMasterForm(@PathVariable String tabName, ModelMap model) {

这将创建一个路径变量,其中包含您在 # 之后传入的任何值,浏览器将其传递给服务器。

另外,请记住 @RequestMapping 可以接受正则表达式,因此如果您想让它接受“example.html#anything”,您可以执行以下操作:

@RequestMapping(value = "example.htm#{tabName:[a-zA-Z]+}", method = RequestMethod.GET)
public ModelAndView showMasterForm(@PathVariable String tabName, ModelMap model) {

这将导致它仅匹配一个或多个字符 a-z 或 A-Z。

我仍然认为它不会起作用,因为我认为浏览器不会发送“#”之后的任何内容。

更新

OP 似乎想要返回一个带有 #anchor 的链接,以便 UI 能够正确跳转到正确的位置。

我认为最好的方法是返回一个RedirectView:

@RequestMapping(value = "example.htm", method = RequestMethod.GET)
public ModelAndView showMasterForm(ModelMap model)
{
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
MasterJDBCTemplate dao = (MasterJDBCTemplate)context.getBean("masterJDBCTemplate");
List<String> stateList = dao.getStateList();
model.addAttribute("stateList", stateList);
return new ModelAndView(new RedirectView("admin/master/example#ui-tabs-4", true));
}

另一种方法是返回一个字符串而不是 ModelAndView,并返回字符串“redirect:admin/master/example#ui-tabs-4”。

引用文献:

关于jquery - Spring mvc 3 在 url 中的 "#"之后附加内容?例如www.example.com/example#ui-tabs-4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19632444/

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