dimanche 12 janvier 2020

Hello, why is this always true no matter what the input is?

So i have this servlet.

public class CrossServlet extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

        String fName = request.getParameter("firstname");
        String lName = request.getParameter("lastname");
        String age = request.getParameter("age");
        String gender = request.getParameter("gender");

        Utils util = new Utils();
        boolean a = util.isAdult(age);

        String pageName = util.giveTheNeededPicture(gender,a);
        request.setAttribute("firstName",fName);
        request.setAttribute("lastName",lName);
        RequestDispatcher view = request.getRequestDispatcher(pageName);
        view.forward(request,response);
    }

there is a form in wich the user enters his name,age and gender.

age and gender are retrieved and uses as parameter for 2 different methods. first this method determins if the user is and adult or not.

 public boolean isAdult(String age) {
        int parsedAge = Integer.parseInt(age);
        if (parsedAge < 18) {
            return false;
        } else {
            return true;
        }
    }

then this second method takes that return value and determines the gender and returns one of the 4 possible jsp pages.

public String giveTheNeededPicture(String gender, Boolean isAdult) {
        if (gender.equals("male") && isAdult) {
            return "/SexySantaFemale.jsp";
        } else if (gender.equals("male") && !isAdult ) {
            return "/NormalSantaFemale.jsp";
        } else if (gender.equals("female") && isAdult) {
            return "/SexySantaMale.jsp";
        } else if (gender.equals("female") && !isAdult) {
            return "/NormalSantaMale.jsp";
        } else {
            return "noSuchGender";
        }
    }

in this case !isAdult is always true.Why is that?Where is my mistake?

Aucun commentaire:

Enregistrer un commentaire