javajsf:导航
我必须警告你:这个问题可能相当愚蠢,但我现在似乎不能对此置之不理
我有两个托管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(搜索页面)和页面b。jsp(输入页面)。 我想做的是在pageB中放置一个commandbutton,以便打开搜索页面pageA,以某种方式传递参数d9,或者直接在b.insert()之后导航到pageA。我想做的是在插入后显示搜索结果
也许只是我看不到清晰、简单的解决方案,但我想知道这里的最佳实践是什么,还有
我想到了以下几种可能的解决办法:
- 在**B**中包含**A**,并将命令按钮链接到**B.A.search**
- 将**d9**作为**hiddenInput**传递,并在**a**中添加一个新方法**searchFromB**(丑陋!)李>
- 把两个豆子合为一个
# 1 楼答案
在类A中,当页面被导航时,A应该被初始化,因为它将被引用
对不起,我不能提供完整的代码,因为我在这里没有ide,它的互联网机器在工作。因此,我不能提供详情
# 2 楼答案
您应该在faces配置中配置导航流。xml。在理想情况下,您将返回一条“状态”消息,该消息将决定流程。请通过以下链接阅读更多内容: http://www.horstmann.com/corejsf/faces-config.html http://publib.boulder.ibm.com/infocenter/rtnlhelp/v6r0m0/index.jsp?topic=/com.businessobjects.integration.eclipse.doc.devtools/developer/JSF_Walkthrough8.html
至于将值从一个页面传递到另一个页面,您可以使用支持bean。有关支持bean的更多信息,请参见此处: http://www.netbeans.org/kb/articles/jAstrologer-intro.html http://www.coderanch.com/t/214065/JSF/java/backing-beans-vs-managed-beans
希望我已经理解并正确回答了你的问题
在bean之间共享价值的方法
在上面的代码中,“表达式”类似于
#{xyzBean.beanProperty}
由于JSF使用单例实例,您应该能够从其他bean访问这些值。如果你能找到更多关于这项技术的细节,我相信你会得到你想要的# 3 楼答案
在我看来,最简单的方法是第三个选项——在同一个类中同时使用查询和插入方法。你可以这样做:
如果您的类是托管bean,那么您可以从类B加载类A,并在最后的insert方法中调用A.query()。类A也可以有
faces配置中的参数。xml,加载时不会再次实例化
# 4 楼答案
JSF1.1/1.2RAW并没有提供一种简单的方法来实现这一点。Seam/Spring都有解决这个问题的方法,您可以做一些事情。JSF2发布后也应该有解决方案
可能最简单和最方便的方法是将两个bean折叠成一个,并使其成为会话范围。当然,令人担心的是,这个bean不会被删除,并在会话超时之前保持会话状态。耶,内存泄漏
另一种解决方案是将日期作为GET参数传递。例如,您可以调用action方法
然后在另一侧获取参数