增加页面和编辑页面、增加问题和编辑问题的页面使用的都是相同的页面,最后调用的方法是saveOrUpdate方法,所以只说一个就可以了。

一、增加页面

  比较简单,略。流程如下:

  单击“增加页”超链接->Action转发到增加页的jsp页面->填写表单并提交->PageAction保存页面到数据库->重定向到SurveyAction_designSurvey.action

二、增加问题

  增加问题是比较棘手的,因为有九种类型的问题,是不是需要针对这九种类型的问题设计九种类型的页面呢?

  除了设计问题的页面不相同之外其余部分都是相同的。流程如下:

  单击“增加问题”超链接->Action转发到选择问题类型的界面->选择问题类型并提交->QuestionAction判断问题类型并转发到指定的设计问题的页面->填写设计问题的表单->提交给QuestionAction保存,QuestionAction调用相关方法保存问题到数据库,最后重定向到SurveyAction.designSurveyAction.action显示出新增加的问题。

  需要注意的两个问题有:

  1.转发到设计问题的页面,有九种类型的问题,使用问题的数组坐标来判断是哪一种类型的问题,使用五种类型的页面来显示九种类型问题的设计方案:

 1       <result name="0">/question/noneMatrixWithOtherQuestionDesign.jsp</result>
<result name="1">/question/noneMatrixWithOtherQuestionDesign.jsp</result>
<result name="2">/question/noneMatrixWithOtherQuestionDesign.jsp</result>
<result name="3">/question/noneMatrixWithOtherQuestionDesign.jsp</result> <result name="4">/question/noneMatrixSelectQuestionDesign.jsp</result>
<result name="5">/question/noneMatrixTextQuestionDesign.jsp</result> <result name="6">/question/matrixNormalQuestionDesign.jsp</result>
<result name="7">/question/matrixNormalQuestionDesign.jsp</result>
<result name="8">/question/matrixSelectQuestionDesign.jsp</result>

  设计页面的显示略。关键是怎么针对这九种类型的问题进行保存。

  2.怎么保存这九种类型的问题

  不要想的太复杂了,需要提供的字段都在设计页面上给出了,所以直接在Action中保存model对象就可以了。

 //保存Question对象的方法
public String saveQuestion() throws Exception{
Page page=pageService.getPage(pageId);
this.model.setPage(page);
this.questionService.saveQuestion(this.model);
return "toDesignSurveyPageAction";
}

  但是需要注意的是答案的拆分,由于前端页面中传过来的是字符串,所以需要将字符串进行拆分处理成字符数组,这里在set方法中进行处理,例如:

  

三、效果显示

  1.单击“设计”

  2.给第一页增加问题

  3.选择问题类型

  4.选择比价复杂的矩阵式下拉列表

  5.单击确定之后查看设计调查页面已经新添加了该问题

【Java EE 学习 71 上】【数据采集系统第三天】【增加页面】【增加问题】【编辑页面,编辑问题】的更多相关文章

  1. 【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

    之前已经实现了数据的采集,现在已经有了基本的数据,下一步就需要使用这些数据实现统计图的绘制了.这里使用Jfreechart实现这些统计图的绘制.首先看一下Jfreechart的基本用法,只有知道了它的 ...

  2. 【Java EE 学习 80 上】【WebService】

    一.WebService概述 什么是WebService,顾名思义,就是基于Web的服务,它使用Http方式接收和响应外部系统的某种请求,从而实现远程调用.WebService实际上就是依据某些标准, ...

  3. 【Java EE 学习 25 上】【网上图书商城项目实战】

    一.概述 1.使用的jdk版本:1.6 2.java EE版本:1.6 3.指导老师:传智播客 王建 二.小项目已经实现的功能 普通用户: 1.登陆 2.注册 3.购物 4.浏览 管理员用户(全部管理 ...

  4. 【Java EE 学习 78 上】【数据采集系统第十天】【Service使用Spring缓存模块】

    一.需求分析 调查问卷中或许每一个单击动作都会引发大量的数据库访问,特别是在参与调查的过程中,只是单击“上一页”或者“下一页”的按钮就会引发大量的查询,必须对这种问题进行优化才行.使用缓存策略进行查询 ...

  5. 【Java EE 学习 77 上】【数据采集系统第九天】【通过AOP实现日志管理】【通过Spring石英调度动态生成日志表】【日志分表和查询】

    一.需求分析 日志数据在很多行业中都是非常敏感的数据,它们不能删除只能保存和查看,这样日志表就会越来越大,我们不可能永远让它无限制的增长下去,必须采取一种手段将数据分散开来.假设现在整个数据库需要保存 ...

  6. 【Java EE 学习 76 上】【数据采集系统第八天】【角色授权】【用户授权】【权限的粗粒度控制】【权限的细粒度控制】

    一.角色管理 单击导航栏上的"角色管理"超链接,跳转到角色管理界面,在该界面上显示所有角色,并提供角色的增加和删除.修改超链接. 1.增加新角色(角色授权) 流程:单击增加新角色超 ...

  7. 【Java EE 学习 72 上】【数据采集系统第四天】【增加调查logo】【文件上传】【动态错误页指定】【上传限制】【国际化】

    增加logo的技术点:文件上传,国际化 文件上传的功能在struts2中是使用文件上传拦截器完成的. 1.首先需要在页面上添加一个文件上传的超链接. 点击该超链接能够跳转到文件上传页面.我给该表单页面 ...

  8. 【Java EE 学习 71 下】【数据采集系统第三天】【分析答案实体】【删除问题】【删除页面】【删除调查】【清除调查】【打开/关闭调查】

    一.分析答案实体 分析答案实体主要涉及到的还是设计上的问题,技术点几乎是没有的.首先需要确定一下答案的格式才能最终确定答案实体中需要有哪些属性. 答案格式的设计是十分重要的,现设计格式如下: 在表单中 ...

  9. 【Java EE 学习 75 上】【数据采集系统第七天】【二进制运算实现权限管理】【权限分析和设计】

    一.权限计算相关分析 1.如何存储权限 首先说一下权限保存的问题,一个系统中最多有多少权限呢?一个大的系统中可能有成百上千个权限需要管理.怎么保存这么多的权限?首先,我们使用一个数字中的一位保存一种权 ...

随机推荐

  1. TCP的三次握手(建立连接)和四次挥手(关闭连接)

    参照: http://course.ccniit.com/CSTD/Linux/reference/files/018.PDF http://hi.baidu.com/raycomer/item/94 ...

  2. Table 表单样式

    <style> table th { white-space: nowrap; background-color: #f5f5f5; height:30px; font-size:14px ...

  3. PHP 文件限速下载代码

    php 文件限速下载代码 <?php include("DBDA.class.php"); $db = new DBDA(); $bs = $_SERVER["QU ...

  4. 机器学习——Logistic回归

    1.基于Logistic回归和Sigmoid函数的分类 2.基于最优化方法的最佳回归系数确定 2.1 梯度上升法 参考:机器学习--梯度下降算法 2.2 训练算法:使用梯度上升找到最佳参数 Logis ...

  5. SVN 图标消失

    问题描述:第一次安装完好,电脑重启后,svn小图标消失不见.查看注册表,发现属于svn小图标的注册表都消失不见. 问题分析:删除杀毒软件(360),因为电脑安装了360,ShellIconOverla ...

  6. 浅谈Android样式开发之selector

    引言 上一篇Android UI中文章我们详细介绍了Android中shape标签的使用.通过shape标签我们可以定义矩形.椭圆.环形.直线等效果.不过shape只能定义单一的形状,在实际开发中,我 ...

  7. Bubble Cup 8 finals D. Tablecity (575D)

    题意: (无输入,纯输出题) 一个城市用1000列2行的格子表示,一个小偷藏在城市的某一处. 在每一小时的开始, 在(X, Y)位置的小偷可以移动到 (X - 1, Y), (X + 1, Y),(X ...

  8. GMOLO平板——如何安装新系统

    1.首先,此款平板采用intel处理器Z3735F,不支持Win7,XP,经过测试,Win8可以在此类笔记本及平板上运行,并非只能安装最新的Win10系统. 2.下载Win8 32位系统作为预备(GH ...

  9. C++11中自定义range

    python中的range功能非常好用 for i in range(100): print(i) 现在利用C++11的基于范围的for循环特性实现C++中的range功能 class range { ...

  10. 编程轶事-java中的null-遁地龙卷风

    1.null是个奇妙的东西,可以理解为对象占位符 User user = null; System.out.println(user.getCredits()); 可以通过编译, User user; ...