Java 在控制器中调用特定操作
我有一个控制器,具有以下两个动作:Java 在控制器中调用特定操作,java,spring-mvc,Java,Spring Mvc,我有一个控制器,具有以下两个动作: @Controller @RequestMapping("xyzlogin") public class XyzloginController { @RequestMapping(method = RequestMethod.GET) public ModelAndView showForm(HttpServletRequest request, ModelMap model) { //.... do somethin
@Controller
@RequestMapping("xyzlogin")
public class XyzloginController
{
@RequestMapping(method = RequestMethod.GET)
public ModelAndView showForm(HttpServletRequest request, ModelMap model)
{
//.... do something....
}
@RequestMapping(value = "/requestXYZ", method = RequestMethod.GET)
public ModelAndView requestXYZ(HttpServletRequest request, ModelMap model)
{
//.... do something with parameter param1.
}
}
在视图文件中,我可以通过以下方式请求此控制器中的操作:
<a href="requestXYZ?param1=abc">Click me to call requestXYZ action</a>
如上例所述,单击超链接后,我想调用requestXYZ操作,但我得到了404错误,表示它找不到映射
我是否定义了映射错误?正确的映射是什么
谢谢,当您的
href
属性中有一个非绝对路径(即不是以/
开头)时,浏览器会将其附加到当前上下文中。例如,如果您当前在localhost:8080/yourapp
,请单击
<a href="requestXYZ?param1=abc">Click me to call requestXYZ action</a>
就你而言,你是对的
localhost:8080/authenticate/authorize/login?param1=abc
因此,单击链接会将您发送到
localhost:8080/authenticate/authorize/requestXYZ?param1=abc
这显然(几乎)不存在
您可以向href
字符串提供一个前导/
,使浏览器根据您的主机地址构建URL
您应该从应用程序上下文根目录构建路径
<a href='<c:url value="/xyzlogin/requestXYZ?param1=abc" />'>Click me to call requestXYZ action</a>
Spring对此也有自己的标记。当您的
href
属性中有一个非绝对路径(即不是以/
开头)时,浏览器会将其附加到当前上下文中。例如,如果您当前在localhost:8080/yourapp
,请单击
<a href="requestXYZ?param1=abc">Click me to call requestXYZ action</a>
就你而言,你是对的
localhost:8080/authenticate/authorize/login?param1=abc
因此,单击链接会将您发送到
localhost:8080/authenticate/authorize/requestXYZ?param1=abc
这显然(几乎)不存在
您可以向href
字符串提供一个前导/
,使浏览器根据您的主机地址构建URL
您应该从应用程序上下文根目录构建路径
<a href='<c:url value="/xyzlogin/requestXYZ?param1=abc" />'>Click me to call requestXYZ action</a>
Spring对此也有自己的标记。当(在)单击链接时,您位于哪个URL?我位于此URL:where“login”映射到“LoginController.java”当(在)单击链接时,您位于哪个URL?我位于此URL:where“login”映射到“LoginController.java”