JSF 2简介:JSF向导
2010-10-26 12:59:18 来源:Web开发网此应用程序在 Questions 类内还包含了一个问题数组,如清单 2 所示:
清单 2. Questions bean
package com.clarity;
import java.io.Serializable;
import com.corejsf.util.Messages;
public class Questions implements Serializable {
private static final long serialVersionUID = -7148843668107920897L;
private String question;
private Question[] questions = {
new Question(
Messages.getString("com.clarity.messages", "expandQuestion", null),
new String[] {
Messages.getString("com.clarity.messages", "hydrogen", null),
Messages.getString("com.clarity.messages", "helium", null),
Messages.getString("com.clarity.messages", "water", null),
Messages.getString("com.clarity.messages", "asphalt", null)
}),
new Question(
Messages.getString("com.clarity.messages", "waterSGQuestion", null),
new String[] {
Messages.getString("com.clarity.messages", "onedotoh", null),
Messages.getString("com.clarity.messages", "twodotoh", null),
Messages.getString("com.clarity.messages", "onehundred", null),
Messages.getString("com.clarity.messages", "onethousand", null)
}),
new Question(
Messages.getString("com.clarity.messages", "numThermoLawsQuestion", null),
new String[] {
Messages.getString("com.clarity.messages", "one", null),
Messages.getString("com.clarity.messages", "three", null),
Messages.getString("com.clarity.messages", "five", null),
Messages.getString("com.clarity.messages", "ten", null)
}),
new Question(
Messages.getString("com.clarity.messages", "closestSunQuestion", null),
new String[] {
Messages.getString("com.clarity.messages", "venus", null),
Messages.getString("com.clarity.messages", "mercury", null),
Messages.getString("com.clarity.messages", "mars", null),
Messages.getString("com.clarity.messages", "earth", null)
})
};
public int size() { return questions.length; }
public String getQuestion() { return question; }
public void setQuestion(String question) { this.question = question; }
public Question[] getQuestions() { return questions; }
}
清单 1 和 清单 2 均没有什么特别之处 — 它们只是提供给我服务器上的一列问题 — 不过其中有一点值得一提,即我借助编程的方式用 helper 方法从一个资源包拉出字符串。您可以通过 下载此代码 来了解这个方法是如何工作的,而在 Core JavaServer Faces 则可以更深入地阅读到相关信息。
以上就是对此应用程序的 bean 的全部介绍了,只有一点需要补充,即 Wizard bean,它充当了此向导的控制器 。它里面的代码是此应用程序内惟一真正有趣的 Java 代码。我在 CDI: Dependency injection and conversations 部分,还会讨论这个 Wizard bean。
您对应用程序内的文件和这些 question bean 有所了解后,我接下来将向您显示我是如何实现这个向导的视图的。
模板和视图
对于大多数的向导,您可以放心地归纳出向导的结构,如图 4 所示:
图 4. 向导的结构
更多精彩
赞助商链接