JSF,您想要将一个 bean 添加到叫做 CalcBean 的 JSF 上下文。您可 以向自己的托管 bean 调用任何事情。声明了 beans 之后,下一步是为应用程序指出高级别 的导航规则。
声明导航规则
对于这个简单的应用程序,您只需要建立从 calculator.jsp 页面到 results.jsp 页面 的导航规则,如下所示。
<navigation-rule>
<from-view-id>/calculator.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/results.jsp</to-view-id>
</navigation-case>
</navigation-rule>
上面的导航规则指出,如果一个操作从 /calculator.jsp 视图返回逻辑结果“success” ,那么就会将用户转向 /results.jsp 视图。
怀疑论者的JSF: 消除关于JSF的FUD(5)
时间:2011-04-11 IBM Rick Hightower
查看模型对象
由于我的目标是演示如何开始进行 JSF 开发,所以我让模型对象保持非常简单。该应用 程序的模型包含在一个模型对象中,如清单 1 所示。
清单 1. Calculator 应用程序的模型对象
package com.arcmind.jsfquickstart.model;
/**
* Calculator
*
* @author Rick Hightower
* @version 0.1
*/
public class Calculator {
//~ Methods ------------------------------------------------------------- ---
/**
* add numbers.
*
* @param a first number
* @param b second number
*
* @return result
*/
public int add(int a, int b) {
return a + b;
}
/**
* multiply numbers.
*
* @param a first number
* @param b second number
*
* @return result
*/
public int multiply(int a, int b) {
return a + b;
}
}
随即,业务逻辑都设置好了。下一步是将业务逻辑粘接到 Web 应用程序接口中。
怀疑论者的JSF: 消除关于JSF的FUD(6)
时间:2011-04-11 IBM Rick Hightower
粘接模型和视图
控制器的目标是充当从模型到视图的粘合剂。Controller 对象的其中一个功能是保持模 型对于视图技术不可知。正如从下面可以看到的,控制器指定三个 JavaBeans 属性,这些属 性将用于收集输入和显示结果。这三个属性是:results(输出)、firstNumber(输入)和 secondNumber(输入)。Controller 也呈现两个操作,它们委派给 Calculator 对象中相同 名称的操作。清单 2 展示了 CalculatorController 的代码。
清单 2. CalculatorController
package com.arcmind.jsfquickstart.controller;
import com.arcmind.jsfquickstart.model.Calculator;
/**
* Calculator Controller
*
* @author $author$
* @version $Revision$
*/
public class CalculatorConroller {
//~ Instance fields ----------------------------------------------------- ---
/**
* Represent the model object.
*/
private Calculator calculator = new Calculator();
/** First number used in operation. */
private int firstNumber = 0;
/** Result of operation on first number and second number. */
private int result = 0;
/** Second number used in operation. */
private int secondNumber = 0;
//~ Constructors -------------------------------------------------------- ---
/**
* Creates a new CalculatorConroller object.
*/
public CalculatorConroller() {
super();
}
|