【问题标题】:3 page navigation issue三页导航问题
【发布时间】:2012-05-17 17:52:55
【问题描述】:

我有一个关键的场景。

考虑 3 页。 Page1Page2Page3

来自 第 1 页。 QueryString 中有一个参数,名为“note”。它有两个值“CreateNote”或“UpdateNote”。基于这些值,我在 Page2 上隐藏并显示很少的内容。

到这里没问题。

现在我需要从 Page2 导航到 Page3Page3 上有一个后退按钮。我尝试在 Back 上设置 note 属性,但仍然没有设置这些信息,因此在 Page2 上出现空指针访问。


一些代码如下

Page1网址喜欢

http://localhost:9095/Oscer/pages/UpdateNote.jsf?modified=NO&note=UpdateNote&docid=206&callFrom=prescribe

第2页

它使用像...这样的脚本来处理

在 backingbean 构造函数调用上设置注释对象。

<%
    String note = request.getParameter("note");
    if(note == null || note.equals("")){
        note = (String)request.getAttribute("note");
    }
    request.setAttribute("note",note);
%>

第3页

试图处理 BackButton 之类的,

if(note == null){
            FacesContext facesContext = FacesContext.getCurrentInstance();
            Map<String,String> requestObj = facesContext.getExternalContext().getRequestParameterMap();
            if(requestObj != null){
                note = requestObj.get("note"); //Either of CreateNote or UpdateNote
            }
        }

        request.setAttribute("note", note);

现在,当我们从 Page3 导航到 Page2 时,虽然我设置了 request.setAttribute("note", note);,但它给出了 NULL 指针异常原因,请注意 Page2 不是还没设置:(

如果查询字符串处理的jsp页面,我不明白如何导航??

【问题讨论】:

    标签: java jsp jsf


    【解决方案1】:

    我做到了... :)

    我做的是……

    Page1Page2 在其中一个 backingBean 上让说 sampleBackingBean 设置一个变量。通过从 SampleBackingBean 的默认构造函数中的请求范围获取 note 来初始化它的值。

    在 jsp 上 Page2 使用 {sampleBackingBean.note} 呈现任何显示和隐藏内容

    现在一切正常... :)

    【讨论】:

      【解决方案2】:

      您可以在从 Page1 导航到 Page2 时将其保留在 Session 范围内,而不是将 note 属性保留在请求范围内。在 Page2 上,从会话而不是查询字符串(或请求范围)中检索此属性。所以在第 3 页上,即使按下后退按钮,您的代码也应该可以正常工作。

      【讨论】:

      • 你是对的,但是如果用户从菜单中移到任何其他页面,那么如果超出这 3 个页面。它将永远存在于会话中......并且将这种价值放在会话中并不是一个好主意......
      • 在您的解决方案中,如果您将note 的值放在请求范围内,那么如果在Page3 上用户单击Back 按钮,则范围为note 的请求变量将不会传递给Page2你会得到NullPointerException
      猜你喜欢
      • 2018-01-06
      • 1970-01-01
      • 2017-10-13
      • 2015-12-04
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多