问题描述
当我从清单中单击它时,我的特定汽车没有装载到我的JSP上。
package com.carServlets;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
import javax.servlet.Requestdispatcher;
import javax.servlet.servletexception;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.carSalesSystem.Car;
/**
* Servlet implementation class FindCarByVin
*/
@WebServlet("/FindCarByVin")
public class FindCarByVin extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FindCarByVin() {
super();
// Todo Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws servletexception,IOException {
// Todo Auto-generated method stub
HttpSession session = request.getSession(true);
ArrayList<Car> inventory = (loadInventory());
String vin = request.getParameter("vin");
Car tempCar = new Car();
for (Car find : inventory) {
if (find.getVin().equals("vin")) {
tempCar = find;
Date today = new Date();
Calendar cal = new GregorianCalendar();
cal.setTime(today);
cal.add(Calendar.DAY_OF_MONTH,-120);
Date over120 = cal.getTime();
Date checkDate = null;
try {
checkDate = new SimpleDateFormat("yyyy-MM-dd").parse(find.getPurchaseDate());
} catch (ParseException e) {
e.printstacktrace();
}
if (checkDate.before(over120)) {
session.setAttribute("bid","true");
} else {
session.setAttribute("bid","false");
}
break;
}
}
session.setAttribute("car",tempCar);
Requestdispatcher rs = request.getRequestdispatcher("moreInfo.jsp");
rs.forward(request,response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request,IOException {
// Todo Auto-generated method stub
doGet(request,response);
}
public ArrayList<Car> loadInventory() {
// assign properties
ArrayList<Car> inventory = new ArrayList<Car>();
// assign properties
final String path = "/Users/evanchapman/eclipse-workspace/CarDealership/WebContent/InventoryData";
String fileName = path+"/"+"inventory.txt";
try {
// read from file
Scanner input = new Scanner(new File(fileName));
while (input.hasNextLine()) {
String info = input.nextLine();
// separate by ' :: ' and create String array
String[] data = info.split(" :: ");
// Each element will be assigned to the properties from our Car class
String purchaseDate = data[0];
String imageTitle = data[1];
String year = data[2];
String make = data[3];
String model = data[4];
String vin = data[5];
String mileage = data[6];
String askingPrice = data[7];
String description = data[8];
Car add = new Car(purchaseDate,imageTitle,year,make,model,vin,mileage,askingPrice,description);
inventory.add(add);
}
}
catch (FileNotFoundException e) {
System.out.println("Error reading from file!");
}
return inventory;
}
}
这是与该servlet绑定的JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import ="java.util.ArrayList"%>
<%@ page import ="java.util.List"%>
<%@ page import="com.carSalesSystem.Car"%>
<%ArrayList<Car> inventory = (ArrayList<Car>) request.getAttribute("inventory");%>
<%session.getAttribute("car");%>
<%session.getAttribute("bid");%>
<!doctype html>
<html lang="en">
<head>
<!-- required Meta tags -->
<Meta charset="utf-8">
<Meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="styles/bootstrap.css">
<link rel="stylesheet" type="text/css" href="styles/navbar.css">
<link rel="stylesheet" type="text/css" href="styles/carSalesSystem.css">
<title>More Info</title>
</head>
<body>
<nav class="navbar navbar-expand-sm navbar-dark p-3 px-md-4 mb-3 bg-dark">
<a class="navbar-brand" href="index.jsp">My Dealership</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExample03"
aria-controls="navbarsExample03" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarsExample03">
<ul class="navbar-nav mr-sm-1 ml-auto">
<li class="nav-item">
<a class="nav-link active" href="inventory.jsp">display Inventory</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="dropdown03" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">Search Inventory</a>
<div class="dropdown-menu a:hover dropdown-menu-right" aria-labelledby="dropdown03">
<a class="dropdown-item" href="searchMake.jsp">Search by Make</a>
<a class="dropdown-item" href="searchModel.jsp">Search by Model</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="dropdown03" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">Inventory Control</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown03">
<a class="dropdown-item" href="addNew.jsp">Add New Vehicle</a>
<a class="dropdown-item" href="registerSale.jsp">Register a Sale</a>
</div>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="dropdown03" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">Reports</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown03">
<a class="dropdown-item" href="inventoryReport.jsp">Inventory List</a>
<a class="dropdown-item" href="salesReport.jsp">Sales History</a>
</div>
</li>
</ul>
</div>
</nav>
<section id="showcase">
<div class="container">
<h1 class="display-4">${car.year} ${car.make} ${car.model}</h1>
<p class="lead">More info about the car</p>
</div>
</section>
<div class="container">
<div class="card-deck mb-3 text-left">
<div class="card mb-4 shadow-sm">
<div class="card-body">
<h2 class="card-title pricing-card-title"> ${car.askingPrice}</h2>
<div class="img">
<img src="InventoryData/carPics/${car.imageTitle}" alt="car">
</div>
</div>
</div>
<div class="card mb-4 shadow-sm">
<div class="card-body">
<ul class="list-unstyled mt-3 mb-4">
<li>Year: ${car.year}</li>
<!-- try get year? -->
<li>Make: ${car.make}</li>
<li>Model: ${car.model}</li>
<li>VIN: ${car.vin}</li>
<li>Mileage: ${car.mileage}</li>
<li>Description: ${car.description}</li>
</ul>
<c:if test="${bid.equals('true')}">
<a href="placeBid.jsp?vin=${car.vin}&bid=${bid}&car=${car}" class="btn btn-lg btn-block btn-dark"
role="button">Place Bid</a>
</c:if>
<a href="registerSale.jsp?vin=${car.vin}&askingPrice=${car.askingPrice}" class="btn btn-lg btn-block btn-dark"
role="button">Purchase</a>
<a href="inventory.jsp" class="btn btn-lg btn-block btn-dark" role="button">Return to Inventory</a>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
crossorigin="anonymous"></script>
</body>
<footer class="footer font-small bg-dark">
<div class="footer text-center py-3">
<a href="index.jsp"> MyDealership.net</a> © 2020 copyright
</div>
</footer>
</html>
当我单击特定的汽车时,“有关汽车的更多信息”未正确拉出文本文件。出于某种原因,我得到一个404,它停在目录(carPics /)上,没有获取该汽车的特定jpg,也没有显示年份,品牌,型号,年份,里程或描述。我不确定是否需要提供更多信息,但这是应该从中提取信息的文本文件。
2019-02-03 :: 1955-Porsche-Spyder.jpg :: 1955 ::保时捷:: Spyder :: 4L455HE8563223 :: 102000 :: 170000 :: 4速手动变速箱,由中置616发动机提供动力。 2019-04-01 :: 2010-Pontiac-GXP.jpg :: 2010 ::庞蒂亚克:: GXP :: 4H8L4493920 :: 110000 :: 2600 ::原始油漆作业,也使用新轮胎。 2019-05-12 :: 2020-Volkswagen-Passat.jpg :: 2020 ::大众::帕萨特:: 949509LH44 :: 0 :: 24000 ::四缸174马力,带有驻车辅助系统。 2019-07-19 :: 2020-Chevrolet-Blazer.jpg :: 2020 ::雪佛兰:: Blazer :: 9394L994H :: 0 :: 30000 ::大胆而精致的外观满足最终两排中型SUV的敏捷性能。 Blazer配备RS和Premier型号上的标准3.6L V6发动机,功能强大又优雅。 2019-11-30 :: 2005-Ford-Mustang.jpg :: 2005 ::福特::野马:: 989L33221 :: 28000 :: 12000 :: V8,5速手动,如新状况,高级皮革座椅。 2020-02-04 :: 1992-Chevrolet-Astro.jpg :: 1992 ::雪佛兰:: Astro :: P993745H :: 220000 :: 400 ::这东西还怎么运行? 2020-05-19 :: :: 1970-Dodge-SuperBee.jpg :: 1970 ::道奇::超级蜂:: 8LH44321 :: 0 :: 60000 ::这是稀有的1970道奇超级蜂,配有440六只装手枪握把4spd变速箱。真正的V代码车,带有广播节目单,是1970年的599辆之一。该发动机的日期代码正确无误,并由著名的Campbell Automotive用轻质铝制进气口进行了改装。还具有新的离合器和驱动轴。具有Dana Sure grip差速器和动力转向。它在Rally车轮上搭配子午线轮胎可以很好地骑乘。 EB3浅蓝色金属色与深蓝色内饰的稀有配色。被认为是原始的58k英里。 2020-06-20 :: 1967-Dodge-Charger.jpg :: 1967 ::道奇::充电器:: 9939489LHH :: 1000 :: 42000 ::新改造的发动机,其中只有15,788台被生产,无锈,全部出厂编号与4桶化油器匹配。 2020-07-29 :: 2015-Honda-Accord.jpg :: 2015 ::本田::雅阁:: 99394L339X :: 100000 :: 10100 ::零事故,无问题,省油36 MPG Hwy / 27 MPG city 。 2019-03-12 :: 1968-Chevrolet-Impala.jpg :: 1968 ::雪佛兰:: Impala :: 225218909H :: 60000 :: 49900 ::配备了通用铝制板条箱引擎大马力427 hp的铝制缸盖。
(看起来比实际文件中的整洁^^)
此外,这是我的Car类,其中包含构造函数,getter / setter等。 我知道我在整个过程中都没有发现一些小错误。
package com.carSalesSystem;
public class Car {
// Class properties
private String purchaseDate;
private String imageTitle;
private String make;
private String model;
private String year;
private String vin;
private String mileage;
private String description;
private String askingPrice;
// Parameterized Constructor
public Car(String purchaseDate,String imageTitle,String year,String make,String model,String vin,String mileage,String askingPrice,String description) {
this.purchaseDate = purchaseDate;
this.imageTitle = imageTitle;
this.year = year;
this.make = make;
this.model = model;
this.vin = vin;
this.mileage = mileage;
this.askingPrice = askingPrice;
this.description = description;
}
// Default Constructor
public Car() {
}
// Getters and Setters
public String getPurchaseDate() {
return purchaseDate;
}
public void setPurchaseDate(String purchaseDate) {
this.purchaseDate = purchaseDate;
}
public String getimageTitle() {
return imageTitle;
}
public void setimageTitle(String imageTitle) {
this.imageTitle = imageTitle;
}
public String getMake() {
return make;
}
public void setMake(String make) {
this.make = make;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getVin() {
return vin;
}
public void setVin(String vin) {
this.vin = vin;
}
public String getMileage() {
return mileage;
}
public void setMileage(String mileage) {
this.mileage = mileage;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getAskingPrice() {
return askingPrice;
}
public void setAskingPrice(String askingPrice) {
this.askingPrice = askingPrice;
}
// Print String to File method
public String stringToFile() {
return purchaseDate + " :: " + imageTitle + " :: " + year + " :: " + make + " :: " + model + " :: " + vin + " :: " + mileage + " :: " + askingPrice + " :: " + description;
}
// toString method
@Override
public String toString() {
return "Purchase Date = " + purchaseDate + ",Year = " + year + ",Make = " + make + ",Model = " + model + ",VIN = " + vin + ",Mileage = " + mileage + ",Asking Price = " + askingPrice;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)