Title: RE: How does a JSP page invoke a particular function ?

  The constructor for NumberGuessBean calls a function called reset, which I believe calls the setGuess function (I hacked up the code for this JAVA pretty badly to get this to work, eventually, I ended up making all the class variables static...).

  The constructor for NumberGuessBean should be called in the jsp to create a new NumberGuessBean object (I changed the jsp all around as well).

  Most of the changes (I believe) were to get it to work with Netscape Application Server/Builder.
  

-----Original Message-----
From: Nam Nguyen [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, October 06, 1999 5:02 PM
To: [EMAIL PROTECTED]
Subject: How does a JSP page invoke a particular function ?


Hi all,

I'm running a jswdk-1.0 jsp-example that includes 2 files:

numguess.jsp and
NumberGuessBean.java (for the class NumberGuessBean, of course)

In the class NumberGuessBean, there defines the method:

public void setGuess(String guess)

but I could not find  in the jsp or java files anywhere this
function is invoked !!! How could th jsp file process the string
input by the name "guess" ??

Many thanks to any info. on this.

---Nam

numguess.jsp:
==========

<!--
  Number Guess Game
  Written by Jason Hunter <[EMAIL PROTECTED]>, CTO, K&A Software
  Copyright 1999, K&A Software, distributed by Sun with permission
-->

<%@ page import = "num.NumberGuessBean" %>

<jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session"/>
<jsp:setProperty name="numguess" property="*"/>

<html>
<head><title>Number Guess</title></head>
<body bgcolor="white">
<font size=4>

<% if (numguess.getSuccess()) { %>

  Congratulations!  You got it.
  And after just <%= numguess.getNumGuesses() %> tries.<p>

  <% numguess.reset(); %>

  Care to <a href="numguess.jsp">try again</a>?

<% } else if (numguess.getNumGuesses() == 0) { %>

  Welcome to the Number Guess game.<p>

  I'm thinking of a number between 1 and 100.<p>

  <form method=get>
  What's your guess? <input type=text name=guess>
  <input type=submit value="Submit">
  </form>

<% } else { %>

  Good guess, but nope.  Try <b><%= numguess.getHint() %></b>.

  You have made <%= numguess.getNumGuesses() %> guesses.<p>

  I'm thinking of a number between 1 and 100.<p>

  <form method=get>
  What's your guess? <input type=text name=guess>
  <input type=submit value="Submit">
  </form>

<% } %>

</font>
</body>
</html>


NumberGuessBean.java
==================

// Number Guess Game
// Written by Jason Hunter <[EMAIL PROTECTED]>, CTO, K&A Software
// Copyright 1999, K&A Software, distributed by Sun with permission

package num;

import java.util.*;

public class NumberGuessBean {

  int answer;
  boolean success;
  String hint;
  int numGuesses;

  public NumberGuessBean() {
    reset();
  }

  public void setGuess(String guess) {
    numGuesses++;

    int g;
    try {
      g = Integer.parseInt(guess);
    }
    catch (NumberFormatException e) {
      g = -1;
    }

    if (g == answer) {
      success = true;
    }
    else if (g == -1) {
      hint = "a number next time";
    }
    else if (g < answer) {
      hint = "higher";
    }
    else if (g > answer) {
      hint = "lower";
    }
  }

  public boolean getSuccess() {
    return success;
  }

  public String getHint() {
    return "" + hint;
  }

  public int getNumGuesses() {
    return numGuesses;
  }

  public void reset() {
    answer = Math.abs(new Random().nextInt() % 100) + 1;
    success = false;
    numGuesses = 0;
  }
}

===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
FAQs on JSP can be found at:
 http://java.sun.com/products/jsp/faq.html
 http://www.esperanto.org.nz/jsp/jspfaq.html

Reply via email to