增加页面和编辑页面、增加问题和编辑问题的页面使用的都是相同的页面,最后调用的方法是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. decimal与double,float的选择与区别

    decimal 类型可以精确地表示非常大或非常精确的小数.大至 1028(正或负)以及有效位数多达 28 位的数字可以作为 decimal类型存储而不失其精确性.该类型对于必须避免舍入错误的应用程序( ...

  2. Généralement c'est un mélange qui me devient personnellement

    Parmi mes plus grands problèmes personnels avec maisons de rue conventionnelles est en fait ils sont ...

  3. jmeter分布式操作-远程启动功能探索

    一.背景: 之前在Jmeter插件监控服务器性能一篇中说到,在非GUI环境中监控时为了保存监控数据需要修改jmeter脚本,并且每次通过施压机(远程服务器,非GUI环境)来压测时都要将jmeter脚本 ...

  4. apache_commons 之 双向Map DualHashBidiMap (使用及源码)

    在项目当中,经常出现需要根据Key值获取value:而且要求根据value获取key值,其实在commons-collections包中已经提供了此集合类.就是DualHashBidiMap类. (官 ...

  5. JS这些代码你都不会,你还有什么好说的!!!

    都说自己工资低的,先看看这些代码你能写出来不?这些都不会,你还嫌工资?

  6. 关于Block的简单使用

    Block在整个iOS开发中无所不见,很重要,很重要,文本在这里block的简单使用介绍.我们可以简单地定义.使用block. 1. Block和C的指针函数很像,但比C的函数灵活多了.废话了.... ...

  7. axios基本用法

    vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios,前一段时间用了一下,现在说一下它的基本用法. 首先就是引入axios,如果你使用es6,只需要安装axios ...

  8. iOS警告收录及科学快速的消除方法

    来自: http://www.cnblogs.com/dsxniubility/p/4757760.html iOS警告收录及科学快速的消除方法     前言:现在你维护的项目有多少警告?看着几百条警 ...

  9. [codevs1743]反转卡片

    [codevs1743]反转卡片 试题描述 [dzy493941464|yywyzdzr原创] 小A将N张卡片整齐地排成一排,其中每张卡片上写了1~N的一个整数,每张卡片上的数各不相同. 比如下图是N ...

  10. 关于三层架构与MVC的一些理解

    刚毕业的时候,参与了一个上位机的系统开发.上位机所使用的是.net Windows Form技术. 当时,和一个北理的姑娘在一个项目组里.因为她来公司时间比较长,而且经验比较丰富,所以,上位机的架构由 ...