(1) For example,
quote.jsp:
<jsp:useBean id="quote" class="temp.RandomQuote"
scope="request">
<jsp:setProperty name="quote"
property="quoteType" param="quoteType" />
</jsp:useBean>
<BODY BGCOLOR=#CCCCFF>
Hello, your random quote on
<SPAN STYLE="COLOR:BLUE"><%= quote.getQuoteType()
%></SPAN> is:
<P>
<jsp:getProperty name="quote" property="quote"
/>
</BODY>
RandomQuote.java:
package temp;
import java.util.Random;
public class RandomQuote {
private static final String
JAVA = "Java";
private static final String
PERL = "Perl";
private static final String
MISC = "miscellaneous";
private static final Random
RANDOM = new Random();
private static final String[]
JAVA_QUOTES = {
"Java is good
for your health.",
"I want coffee
beans, not Java Beans.",
"Java is not
my cup of coffee.",
"Bill Gates
hates Java.",
"Two cups
of Java and call me in the morning."
};
private static final String[]
PERL_QUOTES = {
"No more Perl!",
"I'd rather
have pearls, then Perl.",
"Perl gives
you good head massage.",
"No Perl,
no grade."
};
private static final String[]
MISC_QUOTES = {
"Make no mistakes.
I like Coke.",
"Don't drink
Coke today.",
"Mama Jones
lives here.",
"Eat your
own dog food!"
};
private String quoteType = JAVA;
public void setQuoteType (String
quoteType) {
this.quoteType
= quoteType;
}
public String getQuoteType ()
{
return
quoteType;
}
public String getQuote () {
if (quoteType.equalsIgnoreCase(JAVA))
return JAVA_QUOTES[Math.abs(RANDOM.nextInt()) % JAVA_QUOTES.length];
else
if (quoteType.equalsIgnoreCase(PERL))
return PERL_QUOTES[Math.abs(RANDOM.nextInt()) % PERL_QUOTES.length];
else
return MISC_QUOTES[Math.abs(RANDOM.nextInt()) % MISC_QUOTES.length];
}
}
(2)
(a) For example,
<?xml version="1.0" ?>
<Memo>
<To name="Kwok-Bun Yue" alias="bun"
/>
<From>Michael Jordan</From>
<Subject>Want to play one
on one</Subject>
<body>
Hey,
you need to improve your dunking skills. Your shooting
average is too low. Should
be > 50%. <:-> M.J.
</body>
</Memo>
(b) For example, as generated by DTDGenerator:
<!ELEMENT body ( #PCDATA ) >
<!ELEMENT From ( #PCDATA ) >
<!ELEMENT Memo ( To, From, Subject, body
) >
<!ELEMENT Subject ( #PCDATA ) >
<!ELEMENT To EMPTY >
<!ATTLIST To alias NMTOKEN #REQUIRED >
<!ATTLIST To name CDATA #REQUIRED >