选项列表未在JSP中加载

时间:2014-03-31 17:37:58

标签: jsp servlets jstl

我有一个Web应用程序,在获取所有用户信息后,它会将该信息发送到另一个页面并显示它。就这些。问题是我需要从选择列表中获取值。如何在其他页面上执行此操作,当我单击提交时,它会在下面给出错误。

  

message / Justin_EJ_Assignment03_15400579 / customerServlet /

     

描述:请求的资源不可用

     

我在哪里错了?试图获得令人沮丧   这工作....

以下是我的3个课程:

MODEL(存储语音列表的地方)

//This class stores all of the neccessary phonetypes to be added to the select list in the form.
package edu.witc.Assignment03.model;
import java.util.ArrayList;
import java.util.Collection;

public class Phone {

    private String phoneName = "";
    private Collection<Phone> phoneTypeCollection = null;

    public Phone(){
        phoneTypeCollection = new ArrayList<>();
        phoneTypeCollection.add(new Phone("Home"));
        phoneTypeCollection.add(new Phone("Mobile"));
        phoneTypeCollection.add(new Phone("Work"));
    }

    public Phone(String phoneName){
        this.phoneName = phoneName;
    }

    public String getPhoneName(){
        return phoneName;
    }

    public Collection<Phone>getPhoneCollection(){
        return phoneTypeCollection;
    }
}

CONTROLLER(处理获取JSP页面列表的Servlet的位置)

package edu.witc.Assignment03.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import javax.servlet.*;
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 edu.witc.Assignment03.model.Customer;
import edu.witc.Assignment03.model.Phone;
import edu.witc.Assignment03.model.States;


@WebServlet(description = "servlet to get act as controller between form and models", urlPatterns = { "/customerServlet" })
public class CustomerServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public CustomerServlet() {
        super();
    }

    private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub

        HttpSession session = request.getSession();

        //create the JavaStudents object
        Phone phone = new Phone();

        //declare the student collection
        Collection<Phone> phones = phone.getPhoneCollection();
        //flesh out the collection from the arraylist
        //students = new JavaStudents().getStudents();
        //System.out.println("hey " + students.size());
        //store the JavaStudents object in the session
        //if(session != null){
        session.setAttribute("phones", phones);
        request.getRequestDispatcher("/customerManagement.jsp").forward(request, response);
        //}
    }

    private edu.witc.Assignment03.model.States states = new States();
    private List<edu.witc.Assignment03.model.Customer> customers = new ArrayList<Customer>();

    private void addCustomer(HttpServletResponse response, HttpServletRequest request)//redirect to index
            throws IOException, ServletException {
        String url = "/pets.jsp";
        request.setAttribute("customers", customers);
        request.getRequestDispatcher(url).forward(request, response);
    }

    private void editCustomer(HttpServletResponse response, HttpServletRequest request)//redirect to index
            throws IOException, ServletException {
        String url = "/customerManagement.jsp";
        request.setAttribute("customers", customers);
        request.getRequestDispatcher(url).forward(request, response);
    }

    private void sendCustomerList(HttpServletResponse response, HttpServletRequest request)//redirect to index
            throws IOException, ServletException {
        String url = "/index.jsp";
        request.setAttribute("customers", customers);
        request.getRequestDispatcher(url).forward(request, response);
    }

    private Customer getCustomer(int customerId) {
        for (Customer customer : customers) {
            if (customer.getCustomerId() == customerId) {
                return customer;
            }
        }
        return null;
    }

    private void sendEditCustomerForm(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        String url = "/customerManagement.jsp";
        request.setAttribute("customers", customers);
        request.getRequestDispatcher(url).forward(request, response);
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
        // update customer
        int customerId = 0;
        try {
            customerId =
                    Integer.parseInt(request.getParameter("id"));
        } catch (NumberFormatException e) {}

        Customer customer = getCustomer(customerId);

        if (customer != null) {
            customer.setFirstName(request.getParameter("firstName"));
            customer.setLastName(request.getParameter("lastName"));
            customer.setEmail(request.getParameter("email"));
            customer.setPhone(request.getParameter("phone"));
            customer.setAddress(request.getParameter("address"));
            customer.setCity(request.getParameter("city"));
            request.setAttribute("states", states);
            customer.setZip(request.getParameter("zip"));
        }
        addCustomer(response, request);
    }
}

JSP FORM(手机类型的选项列表应加载的地方)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.ArrayList" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Customer Management</title>
</head>
<body>
    <form action="customerServlet/" method="post">
        First Name:<br>
        <input type="text" name="firstName"/><br>
        Last Name:<br>
        <input type="text" name="lastName"/><br>
        Email:<br>
        <input type="text" name="email"/><br>
        Phone:<br>
        <input type="text" name="phone"/><br>
        Phone Type:<br>

        Street Address:<br>
        <input type="text" name="streetAddress"/><br>
        Apartment Number:<br>
        <input type="text" name="apartmentNumber"/><br>
        City:<br>
        <input type="text" name="city"/><br>


        State:<br>


              <select name="thePhones" id="selectPhones">
            <option selected value="choose">Select a Phone</option>
            <c:forEach items="${sessionScope.phones}" var="current"  >
                <option>${current.getPhoneName()}</option>              
            </c:forEach>        
        </select>

        <input type="submit" value="submit">
        </form>
</body>
</html>

0 个答案:

没有答案