ずっと悩んでいます。どうか助けてください。
現在、servletとjspを使用した画面を作成しています。
内容は、
・『入力画面』のテキストボックスから文字を入力し、ボタンを押す
・分割された画面の下にある『出力画面』に、入力された値が表示される
・テキストボックスが空白の状態でボタンを押した時、『空です』のアラートボックスが表示されるようにする
・出力された文字は上書きされず増え続ける
このプログラムを作成しようとしています。
以下、プログラムになります。
『Input.jsp』から入力した値を一度『Test.java』に渡し、その後『Output.jsp』に渡して表示させたいのですが、うまく渡ってくれません。
調べたところ、dispatcherで渡し、request.getAttributeで取得できるようですが、動いてくれません。
servlet、jsp共に初心者なので、アドバイスをいただきたいです。
Test.java
public class Test extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { this.doPost(req, res); res.setContentType("text/html; charset=UTF-8"); } protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html; charset=UTF-8"); // テキストボックスからデータを受け取る String input = req.getParameter("param"); // 今までの入力分を取得 String oldData = req.getParameter("oldData"); if (null == oldData) oldData = ""; String AllData = (oldData + input); **req.setAttribute("AllData", AllData); req.setAttribute("input", input); req.setAttribute("oldData", oldData); RequestDispatcher dispathcer = req .getRequestDispatcher("/C18_HelloWeb_Output.jsp"); dispathcer.forward(req, res);** } }
Output.jsp
<%@ page language="java" contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%> <%@page import="java.util.*" import="java.io.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>C18_HelloWeb_Output</title> </head> <body> <center><font size=5px>出力画面</font></center> <br> **<%=request.getAttribute("AllData")%> <%=request.getAttribute("input") %> <%=request.getAttribute("oldData")%>** </body> </html>
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/08 13:12