您的位置:首页>软件开发>Web开发>

用JSF与BEEHIVE PAGE FLOW开发WEB应用 (3)

[ 来源:赛的博客 | 更新日期:2007-7-15 20:17:00 | 评论 0 条 | 我要投稿 ]
可以在页面中利用JSF表示语言中的页面流pageInput绑定上下文绑定到这个值:


  注意,可以利用pageFlow和sharedFlow绑定上下文绑定到页面流控制器自身或者任何可用的共享流的属性:


  最后,要想从后台bean访问页面输入,只需在bean类代码中的任意地方调用getPageInput:

String message = (String) getPageInput("message");
  从JSF页面向页面流发送数据
  还可以随着页面流所引发的动作发送数据。很多动作将要求表单bean作为输入;通常,表单bean用于从页面获取数据送到控制器。首先,让我们构建一个动作来接收表单bean并跳转到页面:

@Jpf.Action( forwards={ @Jpf.Forward(name="success", path="page3.faces") })public Forward goPage3(NameBean nameBean){ _userName = nameBean.getFirstName() + ’ ’ + nameBean.getLastName(); return new Forward("success");}
  该动作包含一个NameBean,它是一个将getters/setters作为其firstName和lastName属性的表单bean类。它设置一个成员变量保存完整名字,之后跳转到page3.faces。我们知道,可以直接从JSF页面或者它的后台bean引发一个动作。在这两种情况下,都可以向动作发送表单bean。下面让我们依次看看每种情况。
字串2


  从后台bean发送表单bean
  要从后台bean中的命令处理程序发送表单bean,需要使用一个特定的注释。下面给出了page2.java中的情况:

private ExampleController.NameBean _nameBean;protected void onCreate(){ _nameBean = new ExampleController.NameBean();}public ExampleController.NameBean getName(){ return _nameBean;}@Jpf.CommandHandler( raiseActions={ @Jpf.RaiseAction(action="goPage3", outputFormBean="_nameBean") })public String chooseNextPage(){ return "goPage3";}
  在这个例子中,JSF页面可以用它选择的任何方式填充_nameBean的值(例如,通过将h:inputText值绑定到#{backing.name.firstName}和#{backing.name.lastName})。之后它使用@Jpf.RaiseAction上的outputFormBean属性来标记_nameBean应当被传递到动作goPage3。

  从JSF页面发送表单bean
  从JSF页面直接发送表单bean很容易,只要您可以通过数据绑定表达式得到bean值。这是通过在commandButton组件内部添加名为submitFormBean的h:attribute组件来实现的: 字串8


  在这里,为了使表单bean发送到动作goPage3,按钮绑定到后台bean的“name”属性(getName)。

  结束语
  本文展示了如何将JSF在构建页面方面的丰富特性与Beehive Page Flow在控制页面间导航方面的强大功能相结合。二者的集成非常容易,但是却会对应用造成深远的影响:它将JSF页面与应用级逻辑相分离,并把页面带入Page Flow所提供的功能领域中。JSF页面得到了清楚的任务:作为单个(如果有足够能力的话)视图元素参与到应用程序的流中。文中没有展示JSF页面中具有事件处理功能且控制器中具有复杂的导航逻辑的完备应用程序。但是随着应用程序的复杂程度提高,它就会更加需要责任的划分以及页面流添加给JSF的高级流功能。您可以花几分钟尝试一下――很快您就将意识到这样做所带来的好处。



Tags:
责任编辑:
您的评论
用户名: 新注册) 密码: 匿名评论 [所有评论]

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为