关于的一点疑问
今天看了一下tomcat中给的猜数字游戏的代码,里面用到了以下的bean:
NumberGuessBean.java
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;
}
}
对应的jsp文件如下:
<%@ 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>
用户在表单中的输入的数字是存在“guess”这个参数中的,然后用
<jsp:setProperty name="numguess" property="*"/>传递给bean,
但是bean中并没有guess这个属性啊?只有setGuess这个函数,这样就能将guess的值传递过来了吗?