以下が現在では作成中のJSPファイルですがコメントアウトしているHTTMLのスクリプト内でエラーがでます。
いまいはっきりとJavaコードの埋め込み方がわかっていません。以下に調べた結果を記述します。
スクリプトレット(HTMLが始まる前)にJavaのコードを記述する場合は <% Javaのコード %>
HTML内にJavaのコードを埋め込む場合は <%= 変数や演算式 %>
EL式を使用すると、インポートやセッションを記述することなくセッションの値を使用できる
EL式で条件分岐等を行う為にJSTLを使用する。
★質問❶
問題のこの部分はどう記述すれば良いのでしょうか。<%=%>もc:cutもエスケープの問題だけで動きは同じとありました。
またこのvarは変数なのでしょうか。
<c:forEach var="i" begin="<%= first %>" end="<%= last %>" step="1"> <a class="btn" href="/JavaEnglish/LoginServlet?currentpage=<%= i %>"><c:out value="${i}" /></a><!--変数に解決できない--> </c:forEach>
★質問❷
<a class="last" href="/JavaEnglish/LoginServlet?currentpage=<%= maxpage %>">最後</a><!--構文エラー-->
はどこが間違えておりますか。
jsp
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4<%@ page import="java.util.List" %> 5<%@ page import="dao.JavaEnglishDAO"%> 6<%@ page import="model.Student"%> 7<%@ page import="model.Teacher"%> 8 9<% 10 int maxpage = (Integer) session.getAttribute("maxpage"); 11 int currentpage = (Integer) session.getAttribute("currentpage"); 12 int tppage = 5; 13 int btnlimt = 5; 14 int last; 15 int first; 16 int next; 17 int prev; 18 19 //maxpqgeが表示できる最大のボタン数(btnlimt)を越えている場合 20 if (maxpage > btnlimt) { 21 last = btnlimt; 22 if (currentpage < 4) { 23 first = 1; 24 last = btnlimt; 25 next = currentpage + 1; 26 if (currentpage == 1) { 27 prev = currentpage; 28 } else { 29 prev = currentpage - 1; 30 } 31 } else if (maxpage - 2 >= currentpage && currentpage >= 4) { 32 last = currentpage + 2; 33 first = currentpage - 2; 34 next = currentpage + 1; 35 prev = currentpage - 1; 36 } else if (maxpage - 2 < currentpage) { 37 last = maxpage; 38 first = maxpage - 4; 39 prev = currentpage - 1; 40 if (currentpage == maxpage) { 41 next = maxpage; 42 } else { 43 next = maxpage + 1; 44 } 45 } 46 //maxpqgeが1の場合 47 } else if (maxpage == 1) { 48 last = 1; 49 first = 1; 50 next = 1; 51 prev = 1; 52 //maxpageが2以上5以下の場合 53 } else if (!(maxpage > btnlimt) && maxpage > 1) { 54 last = maxpage; 55 first = 1; 56 if (currentpage == 1) { 57 prev = currentpage; 58 } else { 59 prev = currentpage - 1; 60 } 61 if (currentpage == maxpage) { 62 next = maxpage; 63 } else { 64 next = maxpage + 1; 65 } 66 } 67%> 68 69 70 71<!DOCTYPE html> 72<html lang="en" dir="ltr"> 73 74<head> 75<meta charset="utf-8"> 76<title>Javaでの練習です</title> 77<link rel="stylesheet" href="style.css"> 78</head> 79 80<body> 81 <div class="main"> 82 83 <div class="container"> 84 85 <div class="student"> 86 <p class="name"> 87 ナマエ: 88 <c:out value="${student.studentname}" /> 89 </p> 90 <p class="plan"> 91 プラン: 92 <c:out value="${student.studentplan}" /> 93 </p> 94 </div> 95 96 <div class="teachers"> 97 <h3>先生を確認しましょう</h3> 98 <c:forEach var="item" items="${teachers}"> 99 <div class="teacher"> 100 <p class="name"> 101 NMAE: 102 <c:out value="${item.teachername}" /> 103 </p> 104 <p class="sex"> 105 SEX: 106 <c:out value="${item.sex}" /> 107 </p> 108 <p class="major"> 109 NMAE: 110 <c:out value="${item.major}" /> 111 </p> 112 </div> 113 </c:forEach> 114 </div> 115 </div> 116 117 </div> 118 119 <div class="btnwrap"> 120 <div class="container"> 121 <c:if test="${currentpage > 1}"> 122 <a class="top" href="/JavaEnglish/LoginServlet?currentpage=1">最初</a> 123 <a class="prev" href="/JavaEnglish/LoginServlet?currentpage=<%= prev %>">前</a> 124 </c:if> 125 126 <c:forEach var="i" begin="<%= first %>" end="<%= last %>" step="1"> 127 <a class="btn" href="/JavaEnglish/LoginServlet?currentpage=<%= i %>"><c:out value="${i}" /></a><!--変数に解決できない--> 128 </c:forEach> 129 130 <c:if test="${maxpage == currentpage}"> 131 <a class="next" href="/JavaEnglish/LoginServlet?currentpage=<%= next %>">次</a> 132 <a class="last" href="/JavaEnglish/LoginServlet?currentpage=<%= maxpage %>">最後</a><!--構文エラー--> 133 </c:if> 134 135 </div> 136 </div> 137 138</body> 139 140</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/05 17:11