こんにちは。Java初心者のKazuです。
今回もお忙しいところ恐れ入りますが、ご教授いただけますと幸いです。
よろしくお願い申し上げます。
###前提・実現したいこと
HTMLで作成したページにて、入力した条件に合うCSVのデータを抽出するプログラムを書きたいと考えています。
検索条件は以下に記します。
(追記)
ソースコードを書き換えたところ、ファイルの読み込みに失敗してしまいます。
なぜでしょうか?
ご教授いただけますと幸いです。
###想定していたことと結果
想定:検索結果に一致したレコードが出てくる
現状:ソースコードが表示されるだけになっている
###該当のソースコード
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>document management system</title> </head> <body> <center> <h1 style="background-color:#42EB66">書類検索</h1> </center> <p>注文書番号、請求書番号、業者名、日付範囲を入力し、検索ボタンをクリックして下さい。 </p> <br> <form action="result.jsp" method="post"> 請求書番号<input type="text" name="number1"> <br> <br> 注文書番号<input type="text" name="number2"> <br> <br> 業者名 <input type="text" name="name"> <br> <br> 金額(下限)<input type="number" name="cost" min="0" max="10000000"> 金額(上限)<input type="number" name="cost" min="0" max="10000000"> <br> <br> 日付(開始)<input type="date" name="date1"> 日付(終了)<input type="date" name="date2"> <br> <br> <br> <br> <br> <br> <center> <input type="submit" value="検索"> <input type="reset" value="リセット"> </center> <br> <br> <br> </form> </body> </html>###該当のソースコード2
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%@ page language="java" contentType="text/html; charset=SJIS"
pageEncoding="SJIS"%>
<%@page import="java.io., java.util., java.util.regex.*" %>
<%!
private String escapeChar(String strInput){
StringBuffer strOutput=new StringBuffer();
for(int i=0;i<strInput.length();i++){
switch(strInput.charAt(i)){
case '<' :
strOutput.append("<");
break;
case '>' :
strOutput.append(">");
break;
case '&' :
strOutput.append("&");
break;
case '"' :
strOutput.append(""");
break;
default :
strOutput.append(strInput.charAt(i));
break;
}
}
return strOutput.toString();
}
%>
<%
String tmp;
StringTokenizer stk;
File f = new File("results.csv");
FileInputStream input = new FileInputStream(f);
InputStreamReader fr = new InputStreamReader(input,"SJIS");
BufferedReader br = new BufferedReader(fr);
int i, num, flag=0;
String[] strData = new String[10];
Pattern searchPattern1 = Pattern.compile(searchBuilding1);
Pattern searchPattern2 = Pattern.compile(searchBuilding2);
Pattern searchPattern3 = Pattern.compile(searchBuilding3);
Pattern searchPattern4 = Pattern.compile(searchBuilding4);
Pattern searchPattern5 = Pattern.compile(searchBuilding5);
Pattern searchPattern6 = Pattern.compile(searchBuilding6);
Pattern searchPattern7 = Pattern.compile(searchBuilding7);
while (br.ready()) {
tmp = br.readLine(); stk = new StringTokenizer(tmp, ","); num = stk.countTokens(); for (i=0; i<num; i++) { strData[i] = (String) stk.nextToken(); } /* Matcher searchMatcher1 = searchPattern1.matcher(strData[0]); Matcher searchMatcher2 = searchPattern2.matcher(strData[1]); Matcher searchMatcher3 = searchPattern3.matcher(strData[2]); Matcher searchMatcher4 = searchPattern4.matcher(strData[3]); Matcher searchMatcher5 = searchPattern5.matcher(strData[3]); Matcher searchMatcher6 = searchPattern6.matcher(strData[4]); Matcher searchMatcher7 = searchPattern7.matcher(strData[4]); */ int cost = Integer.parseInt(strData[3]); int cost1 = Integer.parseInt("cost1"); int cost2 = Integer.parseInt("cost2"); if (strData[0]=="number1"&&strData[1]=="number2"&&strData[2]=="name"&&(cost>=cost1||cost<=cost2)&& (strData[4].compareTo("date1")<0&&strData[4].compareTo("date2")>0)) { out.println("<tr>"); for (i=0; i<num; i++) { out.println("<td>" + strData[i] + "</td>"); } out.println("</tr>"); flag = 1; }
}
br.close();
%>
<%
if (flag == 0) {
out.println("<p>該当する建物は見つかりませんでした。</p>");
}
%>
回答4件
あなたの回答
tips
プレビュー