【问题标题】:how to redirect another jsp page in controller using spring MVC?如何使用spring MVC在控制器中重定向另一个jsp页面?
【发布时间】:2017-11-03 05:31:05
【问题描述】:

in WEB-INF having a Jsp File pls see image 我正在使用带有 Hibernate 数据库连接的 Spring mvc,在我的控制器中,我的控制器中有来自变量 val 的数据库中的数据,现在我如何使用数据重定向到另一个 jsp 页面

控制器部分:

@RequestMapping(value = "/EditShop" , method = RequestMethod.POST)
          public String editShop(HttpServletRequest request,HttpServletResponse response) throws IOException 
          {             
              String id=request.getParameter("Id");       
              try
              {     
                  String val=shopService1.editShopinfo(id);
                  System.out.println("Edit Shop : "+val);                         
              }
              catch(Exception e)
              {

                  System.out.println("Edit Shop : "+e );              
              }                    
               return "redirect:/EditShop.jsp";
          }

【问题讨论】:

    标签: java spring spring-mvc spring-boot


    【解决方案1】:

    您可以在 Spring 中借助 ModelAndView 将数据从控制器传递到 UI(另一个 JSP 页面)。

    new ModelAndView("newJSPPage","aliasNameToBean",originalBean);
    

    newJSPPage - 替换为您需要从控制器重定向的新 JSP 文件。

    aliasNameToBean - 替换为您可以在重定向的 JSP 页面访问 bean 数据的别名。

    originalBean - 替换为您拥有数据的原始 bean 对象名称。

    【讨论】:

    • 欲了解更多信息,请访问此链接,stackoverflow.com/questions/5055358/…
    • 我在上面添加,但在我的控制台页面(输出页面)中显示 DEBUG DispatcherServlet - 渲染视图 [org.springframework.web.servlet.view.JstlView: name 'EditShop';名称为“dispatcher”的 DispatcherServlet 中的 URL [/WEB-INF/EditShop.jsp]] DEBUG JstlView - 添加了类型为 [java.lang.String] 的模型对象“shopModel”以在名称为“EditShop”的视图中请求 DEBUG JstlView - 转发到 InternalResourceView 'EditShop' 页面中的资源 [/WEB-INF/EditShop.jsp] 不会在另一个页面中转发
    • 基本上,您不应该在 WEB-INF 中声明 JSP 文件。它应该在 WebComponent 之下和 WEB-INF 之外。如果您没有配置前缀/后缀,您应该使用 .jsp 声明重定向文件。您能否添加您的代码以便更好地理解。
    • 在我的 WEB-INF 内部有一个 jsp 文件,但它没有在另一个页面中转发,请参见上面的图片@Subbareddy Nallamachu
    • 对不起,我现在在办公室。不允许打开图片链接
    【解决方案2】:

    return "redirect:/EditShop.jsp";

    Insted 这个你有返回视图名称,如 返回“编辑商店”;

    在 Spring 执行流程中,InternalResourceViewResolver 会小心调用 Jsp。

    您必须将 val 设置为 HttpSession 对象,例如 session.setAttribut("val",valueofField);

    然后你在你的jsp中得到那个值 session.getAttribute("val");

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      相关资源
      最近更新 更多