我有一个JSP页面来搜索客户。此页面调用控制器,该控制器执行返回客户列表的方法,然后转发到原始URL;
我曾经转发过:request.getRequestDispatcher(urlOrigin).forward(request,response);
(注1:request.getHeader(“Referer”)用于获取完整的原始网址)
(注2:有一种方法可以拆分完整的原始URL并获取名称页面)
既然如此,我在browsear中有以下网址:
(http://domain/ProjetoT/mvc)
它是我的控制器的网址
如果我再次搜索客户将无法正常工作,因为控制器网址将被识别为原始网址。
我尝试使用:response.Sendredirect(urlOrigin);
但是我丢失了我的对象,并且没有呈现客户列表。
任何人都可以帮助我吗?
谢谢!
答案 0 :(得分:0)
您可以通过用于处理搜索的同一控制器访问JSP页面,而不是直接在浏览器中访问JSP页面。要做到这一点,您必须对控制器进行编程,以检测您是处于初始显示模式还是处于“提交”模式。这通常通过检查提交中发送的参数的存在来完成。
因此,在初始显示模式下,您的控制器只需转发到JSP而无需进一步处理,而在提交模式下,它将执行当前正在执行的操作。这样您就可以在初始显示和提交时使用相同的URL,并且您描述的问题应该消失(即,如果我正确理解您的问题)。