其他语言
Cocoon 使用 Rhino,这是一种插入到 JVM 中的 JavaScript 虚拟机。Cocoon 控制器使用一个修改过的 Rhino 版本来表达延续,所以 Cocoon 允许用 Java 或 JavaScript 来表达控制器逻辑。请考虑清单 4 中来自 Cocoon 教程的应用程序(参见 参考资料):
清单 4. 使用 Cocoon
try {
if (operator == "plus")
cocoon.sendPage("result.html", {result: a + b});
else if (operator == "minus")
cocoon.sendPage("result.html", {result: a - b});
else if (operator == "multiply")
cocoon.sendPage("result.html", {result: a * b});
else if (operator == "divide")
cocoon.sendPage("result.html", {result: a / b});
else
cocoon.sendPage("invalidOperator.html", {operator: operator});
}
catch (e) {
cocoon.sendPage("error.html",
{message: "Operation failed: " + e.toString()});
}
注意清单 4 中的 sendPage 方法。这个方法将一个页面发送给用户。这里没有支持 Back 按钮或者将用户数据保存到会话中所需的冗长代码 —— 这些都封装在 Cocoon 的框架中了。
实现延续
RIFE 框架实现它自己的延续,而 WebWork 框架使用 RIFE 的延续实现。Jetty 6 也包含一个用 Java 编写的延续实现。清单 5 给出了一个来自 RIFE 教程的例子,这个例子是一个猜数字游戏:
清单 5. RIFE 示例
while (mGuess != answer) {
print(template);
pause();
guesses++;
if (answer < mGuess) {
template.setBlock("indication", "lower");
} else if (answer > mGuess).{
template.setBlock("indication", "higher");
}
}
文章来源于领测软件测试网 https://www.ltesting.net/