基于用例描述和原型进行页面流程分析,分配 JSP 与 Action (View 与
Controller)各自应付的职责,理清思路。原则是:视图仅负责渲染页面,尽量不
要将逻辑放入, 视图越无知越好。
有两种提交表单动作: "开始一次新的猜数" "猜猜看" (有两个 Action)
仅有一个页面(唯一的 ActionForward )
该页面视图需要照顾到三种状态:(蓝色为 action 负责处理的逻辑)
1. 初始进入
如果数字范围是动态的,需要根据 Session 中的数据集合动态构建。
在进入页面 前,需要从数据库或配 置文件中读取 并创建一个 List 放入
Session,当然,如果是全局范围内的,只需创建一次。
注:创建数字范围列表的职责明显不应该属于 JSP,在典型的 MVC 程序中,Jsp 是不允
许直接,或者通过自定义标签、业务 Bean 等方法绕开 action 直接访问数据库的。
2. 点击 开始一次新的猜数 按钮
需要在选择框中保持用户所选的数字范围,直到用户下一次重新选择为止。
需要将选中的数字范围上限存放在 Session 中。
需要创建一个小于该上限的随机数,作为答案,存放于 session 中,用于后面
的数字比较。
注:使用 scope 为 session 级别的 ActionForm 在这里有了充分理由,可以帮我们自动完成
保存数字范围上限到会话和页面回显两个功能特性。虽然它只有一个属性,并且不用验证。
3. 点击 猜猜看 按钮
A 当输入为空或非数字,在页面上显示请输入正整数的消息(如果是仅要求
客户端 javascript 验证,则不需要考虑后台逻辑验证).
B 不要保留用户输入的数字(在页面上设置文本框的 value 为空)
C 在页面下方根据比较的结果,显示 太大/太小/恭喜你答对了 三种消息
验证输入的是否为正整数,否则创建相应错误消息,并 saveErrors,中止流程。
将比较结果消息传入 request,以供页面显示。
注: 这里使用 ActionForm 的理由不充分。
评论0