package downey.complexBean;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import downey.PresetCheckedAndSelected;
import downey.BeanUtilities;
import downey.complexBean.beans.BidInfo;
/** Example of simplified form processing. Shows two features:
*
*
Automatically filling in a bean based on the
* incoming request parameters.
*
Using the same servlet both to generate the input
* form and to process the results. That way, when
* fields are omitted, the servlet can redisplay the
* form without making the user reenter previously
* entered values.
*
*
");
}
/** If the required data is totally missing, show a blank
* form. If the required data is partially missing,
* warn the user, fill in form fields that already have
* values, and prompt user for missing fields.
*/
private void showEntryForm(HttpServletRequest request,
HttpServletResponse response,
BidInfo bid,
boolean isFromPost)
throws ServletException, IOException {
//boolean isPartlyComplete = bid.isPartlyComplete();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title =
"Welcome to Auctions-R-Us. Please Enter Bid.";
out.println
(DOCTYPE +
"\n" +
"\n" +
"\n" +
"" + title + "\n" +
"
\n" +
"
" + title + "
\n" +
warning(isFromPost) +
"
");
}
private void submitBid(BidInfo bid) {
// Some application-specific code to record the bid.
// The point is that you pass in a real object with
// properties populated, not a bunch of strings.
}
private String warning(boolean isFromPost) {
if(isFromPost) {
return("
Required Data Missing! " +
"Enter and Resubmit.
\n");
} else {
return("");
}
}
/** Create a textfield for input, prefaced by a prompt.
* If this particular textfield is missing a value but
* other fields have values (i.e., a partially filled form
* was submitted), then add a warning telling the user that
* this textfield is required.
*/
private String inputElement(String prompt,
String name,
String value,
boolean isFromPost) {
String message = "";
String style = "";
if (isFromPost && ((value == null) || value.equals(""))) {
message = "Required field! ";
style = " class='error'";
}
return(message + prompt + ": " +
" \n");
}
private String inputElement(String prompt,
String name,
double value,
boolean isFromPost) {
String num;
if (value == 0.0) {
num = "";
} else {
num = String.valueOf(value);
}
return(inputElement(prompt, name, num, isFromPost));
}
private String inputGroup(String type, String name, String[] values,
BidInfo bid) {
String result = "";
if (values == null) return result;
for (int pos=0; pos" + values[pos] + " \n";
}
return result;
}
private final String DOCTYPE =
"\n";
}