java - 无法从一个 Controller 重定向到另一个 Controller -Spring MVC

标签 java spring-mvc model-view-controller

我是 spring MVC 的新手,遇到了一些错误。
我有两个 Controller 如下
1) 登录 Controller .java

@Controller
@RequestMapping("/log")
public class LoginController {
    @Autowired
    private LoginService service;

    @RequestMapping(value="login.spring",method=RequestMethod.GET) 
    public ModelAndView prepareLoginForm()
    {
        System.out.println("In get");
        return new ModelAndView("Login", "login", new Login());
    }

    @RequestMapping(value="login.spring",method=RequestMethod.POST) 
    public ModelAndView processLogin(@ModelAttribute("login") Login login,BindingResult result)
    {
        int i=service.validateLogin(login);
        if(i==0){
            return  new ModelAndView("redirect:login.spring");
        }

        ModelAndView view=new ModelAndView("redirect:Customer/Searchform.spring");


        return view;
    }

}

2) CustomerController.java

@Controller
@RequestMapping("/Customer")
public class CustomerController {

    @Autowired
    private CustomerService customerService;


    @RequestMapping(value="Searchform.spring",method=RequestMethod.GET)
    public  ModelAndView prepareCustomer()
    {
        System.out.println("In customer controller");
        CustomerSearchForm customerSearchForm=new CustomerSearchForm();
        return new ModelAndView("CustomerSearch","customerSearchForm",customerSearchForm);

    }


    @RequestMapping(value="Search.spring",method=RequestMethod.POST)
    public  ModelAndView searchCustomer(@ModelAttribute("customer") CustomerSearchForm customerSearchForm,BindingResult result)
    {
        int i=customerService.serachCustomer(customerSearchForm);
        if(i==1)
        return new ModelAndView("Holdings");

        return new ModelAndView("redirect:Customer");
    }
}

所以在成功登录后我试图重定向到 CustomerController 但是在 浏览器 url 我可以看到请求 url 是 http://localhost:8080/Online_Fund_Trading/log/Customer/Searchform.spring。 由于在 Customer/Searchform.spring 之前添加了 log 我收到了 404-The requested resource is not available 错误。

要将请求 url 作为 http://localhost:8080/Online_Fund_Trading/Customer/Searchform.spring 需要做哪些更改。

最佳答案

需要一个简单的斜杠/

ModelAndView view=new ModelAndView("redirect:/Customer/Searchform.spring");

否则该路径将被视为相对于您当前正在处理的请求的路径。

关于java - 无法从一个 Controller 重定向到另一个 Controller -Spring MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26314817/

相关文章:

java - 当使用 VFS (apache commons) 监视的文件被删除时,当文件被添加回来时我不会收到通知

java - 在 Android 上分析来自麦克风的声音(谐波、分音、泛音)

java - 从 Controller 转发到静态 html 页面

css - 如何在 spring mvc 中从 jsp 文件映射 css 和 js 文件

java - Java应用程序中的MVC模式

java - 如何在 Java Spring Boot MVC 中使用 Ajax 删除多个项目

java - RDD join : After joining two different pair RDDs, 结果RDD键值和顺序发生了变化?

java - ":.+"中的 `{param:.+}` 是什么意思(java)?

Java Web 应用程序 sql 结果与对象列表

model-view-controller - 在 Codeigniter 中显示多个 View 的最佳做法是什么?