前提・実現したいこと
Eclipse上で編集しています。Javaで書いたコントローラー部のプログラム(PickUp.java)にリクエストしてjspの「宛先別配達商品リスト発行画面」(top.jps)を表示すると,そのプログラムへ呼び出すつもりのJavaScriptのセレクトボックス生成ロジック(reprintoption.js)が読み込まれていないようで,空のセレクトボックスしか出来ません。ちゃんとJavaScriptを読み込むようにしてデータの入ったセレクトボックスが出来るようにしたいのです。
各プログラムの位置は次の図の通りです。
exampl/src/servlet/PickUp.java
exampl/WEB-INF/jsp/top.jsp
exampl/WEB-INF/jsp/reprintoption.js
発生している問題・エラーメッセージ
1.Google Chromeブラウザから.PickUp.javaにリクエストすると
「宛先別配達商品リスト発行画面」が表示されるが,セレクトボックスは空です。
2.Eclipse上で直接top.jpsを実行するとエラーメッセージが出ます。
HTTPステータス404-見つかりません
タイプ ステータスレポート
オリジン オリジンサーバーはターゲットソースの現在の表現を見つけられなかったかまたはそれが存在することを開示す るつもりはありません。
該当のソースコード
java
1package servlet; 2 3import java.io.IOException; 4import java.util.Arrays; 5 6import javax.servlet.RequestDispatcher; 7import javax.servlet.ServletException; 8import javax.servlet.annotation.WebServlet; 9import javax.servlet.http.HttpServlet; 10import javax.servlet.http.HttpServletRequest; 11import javax.servlet.http.HttpServletResponse; 12 13import model.Branch; 14import model.BranchGet; 15import model.DataPrintable; 16 17 18@WebServlet("/PickUp") 19public class PickUp extends HttpServlet { 20 private static final long serialVersionUID = 1L; 21 22 23 public PickUp() { 24 super(); 25 26 } 27 28 29 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 30 String[] branchw; 31 BranchGet bg = new BranchGet(); 32 Branch branch = new Branch(); 33 branchw=bg.execute(); 34 branch.setBranch(branchw); 35 System.out.println("PickUp="+Arrays.toString(branchw)); 36 request.setAttribute("branch",branch); 37 38 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/top.jsp"); 39 dispatcher.forward(request, response); 40 } 41 42 43 @SuppressWarnings("static-access") 44 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 45 46 DataPrintable dp =new DataPrintable(); 47 dp.main(); 48 49 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/result.jsp"); 50 dispatcher.forward(request, response); 51 } 52 53} 54コード
HTML
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ page import="model.Branch" %> 4 <%@ page import="java.util.Arrays" %> 5 <% Branch branch =(Branch)request.getAttribute("branch"); %> 6 <% System.out.println("top1="+Arrays.toString(branch.getBranch()));%> 7 <!DOCTYPE html> 8<html> 9<head> 10<meta charset="UTF-8"> 11<title>宛先別配送商品リスト発行</title> 12</head> 13<body> 14<h1>宛先別配送商品リスト発行</h1> 15<form action="/exampl/PickUp" method="post"> 16<input type="hidden" name="hoge" value="foo"> 17<select name="reprint" id="reprint"></select> 18<input type="submit" value="発行"> 19</form> 20<script type="text/javascript"src="/exampl/WEB-INF/jsp/reprintoption.js"></script> 21</body> 22</html>コード
javascript
1branchj = new Array; 2branchj =Array.from(branch); 3let reprint = document.getElementById('reprint'); 4document.createElement('option') 5 for (let i =0;i<branchj.length;i++){ 6 let option =document.createElement("option"); 7 option.SetAttribute('value',branchj[i]); 8 option.innnerHtml = branchj[i]; 9 reprint.appendChild(option); 10 }; 11 12 コード
試したこと
top.jsp上で<script>タグの現れる位置を様々に変えてみたが効果ありませんでした。
<script>タグで呼び出すreprintoption.jsに係るパスを考える限り変えてみたが同様でした。 ### 補足情報(FW/ツールのバージョンなど) Eclipse,ApacheTomcat/9.0.36あなたの回答
tips
プレビュー