一个jsp页面混合添加了4张数据表中的数据,提交到后台之后,怎么分别处理并存储到 对应的库表中呢?

1.我的功能需求是:"问卷调查" , 库表有三张,一个存问卷调查的标题,一个存储问卷调查的题目,一个是存问卷调查的题目对应的选项.
2.个人难题: 如何将标题,题目和选项通过一个jsp页面存到三张库表中.
3.存题目的表和存选项的表是1对多的关系

阅读 3.7k
4 个回答

form表单提交,后台用实体接收的方式,有点繁琐
我当时是前台将数据拼成json,转换成字符串传到后台;
后台解析为json对象,然后存储对应字段到对应的表中

假设你的html如下:

<div class="content">
    <div class="title">
        <span>标题:</span><input type="text" class="title"/>
    </div>
    <div class="list">
        <div class="item">
            <span>题目:</span><input type="text" class="question"/>
            <span>选项:</span><input type="text" class="option"/>
            <span>选项:</span><input type="text" class="option"/>
            <span>选项:</span><input type="text" class="option"/>
            <span>选项:</span><input type="text" class="option"/>
        </div>
        <div class="item">
            <span>题目:</span><input type="text" class="question"/>
            <span>选项:</span><input type="text" class="option"/>
            <span>选项:</span><input type="text" class="option"/>
            <span>选项:</span><input type="text" class="option"/>
            <span>选项:</span><input type="text" class="option"/>
        </div>
    </div>
</div>

你可以用js或者jquery,将问卷当做一个js对象,然后格式化为json字符串进行传输。

<script type="text/javascript">
    var title = $('.content .title input').val();
    // 获取<div class='item'>标签数组
    var itemList = $('.content div.list').children();
    var itemArray = [];
    for (int i = 0; i < itemList.length; i++) {
        var question = itemList[i].class('.question').val();
        var options = [];
        itemList.class('option').each(function(index, value){
               options.push($(this).val());
        });
        itemArray.push({question: question, option: options});
    }
    // 得到的对象格式形如:
    /*{
        title: "title",
        question: [
            {
                question: "Which kind of animal do you like most?",
                option: ["horse", "koala", "rabbit", "panda"]
            },
            {
                question: "Which kind of animal do you like most?",
                option: ["horse", "koala", "rabbit", "panda"]
            }
        ]
    }*/
    var combinedParam = {title: title, question: itemArray};
    // 将combinedParam转为JSON字符串传给后台
    // ...
</script>

我不懂js所以以上的代码你权当伪代码看。
java端获取JSON字符串以后,反序列化得到JSON对象,然后根据需要,该怎么存表就怎么存。

用js或者ajax实现,点击一个按钮,触发三个函数或者ajax

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题