トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

JSPの応用:5段階アンケート

JSPの応用:5段階アンケート

 5段階アンケートの例

  • 集計機能は未実装

bean\Questionnaire.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package bean;

import java.util.ArrayList;
import java.util.List;

public class Questionnaire {
    private static String title = "人生アンケート";
    private static String[] questions = {
            "あなたはいま恋をしていますか",
            "あなたにとってお金は重要ですか",
            "あなたは人生に満足していますか",
        };
    private static ArrayList<Questionnaire> resultList = new ArrayList<Questionnaire>();
    private int[] results = new int[questions.length];
    private String comment;
    public String[] getQuestions() {
        return questions;
    }
    public String getTitle() {
        return title;
    }
    public void saveResult() {
        resultList.add(this);
    }
    public int getSize(){
        return resultList.size();
    }
    public List<Questionnaire> getResultList() {
        return resultList;
    }
    public int[] getResults() {
        return results;
    }
    public void setResults(int[] results) {
        this.results = results;
    }
    public String getComment() {
        return comment;
    }
    public void setComment(String comment) {
        this.comment = comment;
    }
}

questionnaire.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<%@page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:useBean id="questionnaire" class="bean.Questionnaire" />
<HTML>
<HEAD>
    <TITLE>入力フォーム - ${questionnaire.title}</TITLE>
    <META content="text/html; charset=utf-8" http-equiv=Content-Type>
    <style type="text/css">
        th{
            text-align:left;
        }
        textarea{
            width: 100%;
        }
    </style>
</HEAD>
<BODY bgColor=#FFFFFF link=#c0ffc0 text=#000000 vLink=#c0ffa0>
    <H1 ALIGN="CENTER">${questionnaire.title}</H1>
    <HR>
    ${questionnaire.title}は5段階の選択式であり、それぞれの項目について一番左から「全くそう思わない」「あまりそう思わない」「どちらともいえない」「ややそう思う」「強くそう思う」となっています。
    <HR>
    <FORM action="questionnaireResult.jsp" method="post">
    <div align="center">
    <TABLE BORDER=0 WIDTH="90%">
        <TR>
            <TH> </TH>
            <TH> </TH>
            <TH>否</TH>
            <TH>←</TH>
            <TH> </TH>
            <TH>→</TH>
            <TH>肯</TH>
        </TR>
        <c:forEach items="${questionnaire.questions}" var="question" varStatus="status">
            <TR>
                <TD NOWRAP>問${status.count} </TD>
                <TD>${question}</TD>
                <c:forEach begin="1" end="5" var="i">
                    <TD>
                        <INPUT TYPE="radio" name="Q${status.count}" value="${i}">
                    </TD>
                </c:forEach>
            </TR>
            <TR>
                <TD> </TD>
            </TR>
        </c:forEach>
        <TR>
            <TD COLSPAN="7">
            その他の感想:
            <TEXTAREA NAME="comment" ROWS="5"></TEXTAREA>
            </TD>
        </TR>
    </TABLE>
    <BR>
    <BR>
    <INPUT TYPE="submit" value="登録">
    <INPUT TYPE="reset" value="クリア">
    </div>
    </FORM>
</BODY>
</HTML>

questionnaireResult.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<%@page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:useBean id="questionnaire" class="bean.Questionnaire" />
<!-- 登録 -->
<c:if test="${!empty param.Q1}">
<%
    int[] results = new int[questionnaire.getQuestions().length];
    for(int i=0;i<questionnaire.getQuestions().length;i++){
        results[i] = Integer.parseInt(request.getParameter("Q"+(i+1)));
    }
    questionnaire.setResults(results);
%>
    <c:if test="${!empty param.comment}">
        <jsp:setProperty name="questionnaire" property="comment" value="${param.comment}"/>
    </c:if>
<%    questionnaire.saveResult(); %>
</c:if>
<HTML>
<HEAD>
    <TITLE>登録結果 - ${questionnaire.title}</TITLE>
    <META content="text/html; charset=utf-8" http-equiv=Content-Type>
</HEAD>
<BODY bgColor=#FFFFFF link=#c0ffc0 text=#000000 vLink=#c0ffa0>
    <H1 ALIGN="CENTER">登録結果(回答数${questionnaire.size})</H1>
    <HR>
    <c:forEach items="${questionnaire.resultList}" var="q">
        <c:forEach items="${q.results}" var="result" varStatus="status">
            問${status.count}=${result},
        </c:forEach>
        ${q.comment}<br />
    </c:forEach>
</BODY>
</HTML>

最終更新時間:2007年12月20日 10時35分42秒