java - JSF:导航

标签 java jsf navigation

我必须警告你:这个问题可能相当愚蠢,但我现在似乎无法理解它。

我有两个托管 bean,比方说 A 和 B:

class A
{
    private Date d8; // ...getters & setters
    public String search()
    {
        // search by d8
    }
}

class B
{
    private Date d9; //...getters & setters
    public String insert()
    {
         // insert a  new item for date d9
    }    
}

然后我有两个 JSP 页面,pageA.jsp(搜索页面)和 pageB.jsp(输入页面)。 我想做的是在 pageB 中放置一个 commandbutton 以便打开搜索页面 pageA 传递参数 d9> 以某种方式,或者在 b.insert() 之后直接导航到 pageA。我想做的是在插入后显示搜索结果。

也许只是我看不到清晰、简单的解决方案,但我想知道这里的最佳实践是什么......

我想到了这些可能的解决方案:

  1. 在 **B** 中包含 **A** 并将命令按钮与 **b.a.search** 链接
  2. 将 **d9** 作为 **hiddenInput** 传递并在 **A** 中添加新方法 **searchFromB**(丑陋!)
  3. 将两个 bean 合二为一

最佳答案

JSF 1.1/1.2 raw 没有提供执行此操作的简单方法。 Seam/Spring 都有办法解决这个问题,您可以做几件事。一旦发布,JSF 2 也应该有解决方案。

可能最简单和最方便的方法是将两个 bean 合并为一个并使其具有 session 作用域。当然,担心的是这个 bean 不会被删除并保持在 session 中直到 session 超时。耶内存泄漏!

另一种解决方案是将日期作为 GET 参数传递。例如,您的操作方法可以调用

FacesContext.getCurrentInstance().getExternalContext().redirect("pageB?d9=" + convertDateToLong(d9));

然后获取另一边的参数。

关于java - JSF:导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1063033/

相关文章:

html - 将 p 放在 span 内或强制 h :outputText to generate div around text

java - 没有正确计算到 JSF 页面的分页

navigation - 如何正确设置基于身份验证的导航

html - 如何使水平导航栏上的嵌套子菜单垂直?

java - 使用 $setOnInsert 更新文档时出错 - mongoDB

java - 找出两个相似对象之间的差异

java - 从 Java 使用 Google Cloud PubSub 模拟器

java - 我的 Spring-MVC ContentNegotiatingViewResolver 设置是否正确?如何为不受支持的媒体类型发送 404 错误?

jsf - 将 Java EE 服务器从 GlassFish 更改为 Tomcat

android - 抽屉导航操作栏按钮不起作用