Author: husted Date: Thu Mar 9 05:53:33 2006 New Revision: 384512 URL: http://svn.apache.org/viewcvs?rev=384512&view=rev Log: Action2 cookbook2 * Work in progress * Looing for alternative to bean:resource/bean:write to display source files.
Added: struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Select.java (with props) struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple-validation.xml (with props) Modified: struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple.java struts/sandbox/trunk/action2/apps/cookbook/src/webapp/Home.jsp struts/sandbox/trunk/action2/apps/cookbook/src/webapp/View.jsp struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Hello.xml struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Select.xml struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Simple.xml struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Hello/Result.jsp struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Hello/index.jsp struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/Input.jsp struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/Result.jsp struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/index.jsp struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Simple/Input.jsp struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Simple/index.jsp Added: struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Select.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Select.java?rev=384512&view=auto ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Select.java (added) +++ struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Select.java Thu Mar 9 05:53:33 2006 @@ -0,0 +1,308 @@ +package cookbook2; + +import com.opensymphony.webwork.ServletActionContext; +import com.opensymphony.xwork.ActionSupport; +import com.opensymphony.xwork.Validateable; +import com.opensymphony.xwork.util.OgnlValueStack; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.io.File; + +public class Select extends ActionSupport implements Validateable { + + String name; + Date birthday; + String bio; + String favoriteColor; + List friends; + boolean legalAge; + String state; + String region; + File picture; + String pictureContentType; + String pictureFileName; + String favouriteLanguage; + String favouriteVehicalType = "MotorcycleKey"; + String favouriteVehicalSpecific = "YamahaKey"; + + List leftSideCartoonCharacters; + List rightSideCartoonCharacters; + + List favouriteLanguages = new ArrayList(); + List vehicalTypeList = new ArrayList(); + Map vehicalSpecificMap = new HashMap(); + + String thoughts; + + /** + * The constructor pre-populates the controsl for us. + */ + public Select() { + favouriteLanguages.add(new Language("EnglishKey", "English Language")); + favouriteLanguages.add(new Language("FrenchKey", "French Language")); + favouriteLanguages.add(new Language("SpanishKey", "Spanish Language")); + + VehicalType car = new VehicalType("CarKey", "Car"); + VehicalType motorcycle = new VehicalType("MotorcycleKey", "Motorcycle"); + vehicalTypeList.add(car); + vehicalTypeList.add(motorcycle); + + List cars = new ArrayList(); + cars.add(new VehicalSpecific("MercedesKey", "Mercedes")); + cars.add(new VehicalSpecific("HondaKey", "Honda")); + cars.add(new VehicalSpecific("FordKey", "Ford")); + + List motorcycles = new ArrayList(); + motorcycles.add(new VehicalSpecific("SuzukiKey", "Suzuki")); + motorcycles.add(new VehicalSpecific("YamahaKey", "Yamaha")); + + vehicalSpecificMap.put(car, cars); + vehicalSpecificMap.put(motorcycle, motorcycles); + } + + /** + * Prepare form for display. + * + * <p> + * In this example, all the work is done in the constructor. + * Other cases may need to consult data access logic to populate the controls. + * </p> + * @return Result + */ + public String setup() { + return SUCCESS; + } + + /** + * Execute the "Select" action. + * + * <p> + * In this example, we are simply displaying the input. + * Other cases may need to consult business or data access logic. + * </p> + * @return Result + * @throws Exception on any error + */ + public String execute() throws Exception { + return SUCCESS; + } + + // -- Methods that populate controls from data prepared in the constructor -- + + public List getLeftSideCartoonCharacters() { + return leftSideCartoonCharacters; + } + public void setLeftSideCartoonCharacters(List leftSideCartoonCharacters) { + this.leftSideCartoonCharacters = leftSideCartoonCharacters; + } + + + public List getRightSideCartoonCharacters() { + return rightSideCartoonCharacters; + } + public void setRightSideCartoonCharacters(List rightSideCartoonCharacters) { + this.rightSideCartoonCharacters = rightSideCartoonCharacters; + } + + + public String getFavouriteVehicalType() { + return favouriteVehicalType; + } + + public void setFavouriteVehicalType(String favouriteVehicalType) { + this.favouriteVehicalType = favouriteVehicalType; + } + + public String getFavouriteVehicalSpecific() { + return favouriteVehicalSpecific; + } + + public void setFavouriteVehicalSpecific(String favouriteVehicalSpecific) { + this.favouriteVehicalSpecific = favouriteVehicalSpecific; + } + + + public List getVehicalTypeList() { + return vehicalTypeList; + } + + public List getVehicalSpecificList() { + OgnlValueStack stack = ServletActionContext.getValueStack(ServletActionContext.getRequest()); + VehicalType vehicalType = (VehicalType) stack.findValue("top"); + System.out.println("vehicalType.getKey()"+vehicalType.getKey()); + return (List) vehicalSpecificMap.get(vehicalType); + } + + public List getFavouriteLanguages() { + return favouriteLanguages; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public String getBio() { + return bio; + } + + public void setBio(String bio) { + this.bio = bio; + } + + public String getFavoriteColor() { + return favoriteColor; + } + + public void setFavoriteColor(String favoriteColor) { + this.favoriteColor = favoriteColor; + } + + public List getFriends() { + return friends; + } + + public void setFriends(List friends) { + this.friends = friends; + } + + public boolean isLegalAge() { + return legalAge; + } + + public void setLegalAge(boolean legalAge) { + this.legalAge = legalAge; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getRegion() { + return region; + } + + public void setRegion(String region) { + this.region = region; + } + + public void setPicture(File picture) { + this.picture = picture; + } + + public void setPictureContentType(String pictureContentType) { + this.pictureContentType = pictureContentType; + } + + public void setPictureFileName(String pictureFileName) { + this.pictureFileName = pictureFileName; + } + + public void setFavouriteLanguage(String favouriteLanguage) { + this.favouriteLanguage = favouriteLanguage; + } + + public String getFavouriteLanguage() { + return favouriteLanguage; + } + + + public void setThoughts(String thoughts) { + this.thoughts = thoughts; + } + + public String getThoughts() { + return this.thoughts; + } + + // -- inner classes -- + + public static class Language { + String description; + String key; + + public Language(String key, String description) { + this.key = key; + this.description = description; + } + + public String getKey() { + return key; + } + public String getDescription() { + return description; + } + + } + + + public static class VehicalType { + String key; + String description; + public VehicalType(String key, String description) { + this.key = key; + this.description = description; + } + + public String getKey() { return this.key; } + public String getDescription() { return this.description; } + + public boolean equals(Object obj) { + if (! (obj instanceof VehicalType)) { + return false; + } + else { + return key.equals(((VehicalType)obj).getKey()); + } + } + + public int hashCode() { + return key.hashCode(); + } + } + + + public static class VehicalSpecific { + String key; + String description; + public VehicalSpecific(String key, String description) { + this.key = key; + this.description = description; + } + + public String getKey() { return this.key; } + public String getDescription() { return this.description; } + + public boolean equals(Object obj) { + if (! (obj instanceof VehicalSpecific)) { + return false; + } + else { + return key.equals(((VehicalSpecific)obj).getKey()); + } + } + + public int hashCode() { + return key.hashCode(); + } + } +} Propchange: struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Select.java ------------------------------------------------------------------------------ svn:eol-style = native Added: struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple-validation.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple-validation.xml?rev=384512&view=auto ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple-validation.xml (added) +++ struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple-validation.xml Thu Mar 9 05:53:33 2006 @@ -0,0 +1,9 @@ +<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> + +<validators> + <field name="name"> + <field-validator type="requiredstring"> + <message>You must enter a name</message> + </field-validator> + </field> +</validators> Propchange: struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple-validation.xml ------------------------------------------------------------------------------ svn:eol-style = native Modified: struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple.java?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple.java (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/java/cookbook2/Simple.java Thu Mar 9 05:53:33 2006 @@ -13,17 +13,5 @@ public String getName() { return this.name; } - - public String execute() throws Exception { - return SUCCESS; - } - - public String input() throws Exception { - name = "glock"; - return SUCCESS; - } - - public String result() throws Exception { - return SUCCESS; - } + } Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/Home.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/Home.jsp?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/Home.jsp (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/Home.jsp Thu Mar 9 05:53:33 2006 @@ -63,7 +63,6 @@ <ww:a href="%{Simple_exe}"> <img src="<ww:url value="/images/execute.gif"/>" alt="" hspace="4" border="0" align="top" class="inline" /> </ww:a> - <ww:a href="%{Simple_exe}">Execute</ww:a> </td> @@ -91,17 +90,14 @@ </td> </tr> - - - <tr valign="top"> + <tr valign="top"> <td>Complex Input Form using Select Controls</td> <td> - <ww:url id="Select_exe" action="Select" /> + <ww:url id="Select_exe" action="Select!input" /> <ww:a href="%{Select_exe}"> <img src="<ww:url value="/images/execute.gif"/>" alt="" hspace="4" border="0" align="top" class="inline" /> </ww:a> - <ww:a href="%{Select_exe}">Execute</ww:a> </td> @@ -117,7 +113,6 @@ </td> </tr> - </table> <p><img src="<ww:url value="/images/valid-xhtml10.png"/>" alt="Valid XHTML 1.0!" height="31" width="88" /></p> Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/View.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/View.jsp?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/View.jsp (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/View.jsp Thu Mar 9 05:53:33 2006 @@ -11,7 +11,7 @@ <ww:property value="#parameters['src']"/> <hr noshade="noshade" /> <pre> -<ww:include value="#parameters['src']"/> + <ww:include value="#parameters['src']" /> </pre> </body> </html> Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Hello.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Hello.xml?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Hello.xml (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Hello.xml Thu Mar 9 05:53:33 2006 @@ -4,7 +4,7 @@ <package name="Hello" extends="webwork-default" > - <action name="Hello" class="cookbook2.Hello"> + <action name="Hello" class="com.opensymphony.xwork.ActionSupport"> <result>/pages/Hello/Result.jsp</result> </action> Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Select.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Select.xml?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Select.xml (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Select.xml Thu Mar 9 05:53:33 2006 @@ -4,15 +4,10 @@ <package name="Select" extends="webwork-default" > - <action name="Select" method="setup" class="cookbook2.Select"> - <result>/pages/Select/Input.jsp</result> + <action name="Select" class="cookbook2.Select"> + <result>/pages/Select/Result.jsp</result> <result name="input">/pages/Select/Input.jsp</result> </action> - <action name="SelectResult" class="cookbook2.Select" > - <result>/pages/Select/Result.jsp</result> - <result name="input">/pages/Select/Input.jsp</result> - </action> - </package> </xwork> Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Simple.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Simple.xml?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Simple.xml (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/WEB-INF/classes/xwork-Simple.xml Thu Mar 9 05:53:33 2006 @@ -5,14 +5,9 @@ <package name="Simple" extends="webwork-default" > <action name="Simple" class="cookbook2.Simple"> - <result>/pages/Simple/Input.jsp</result> + <result>/pages/Simple/Result.jsp</result> <result name="input">/pages/Simple/Input.jsp</result> </action> - <action name="SimpleResult" method="result" class="cookbook2.Simple" > - <result>/pages/Simple/Result.jsp</result> - <result name="input">/pages/Simple/Input.jsp</result> - </action> - </package> </xwork> Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Hello/Result.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Hello/Result.jsp?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Hello/Result.jsp (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Hello/Result.jsp Thu Mar 9 05:53:33 2006 @@ -1,10 +1,11 @@ +<[EMAIL PROTECTED] uri="/webwork" prefix="ww" %> <html> <head> <title>Cookbook - Hello World</title> </head> <body> -<a href="Home.jsp"><img src="images/return.gif" height="24" width="24" alt="Go Home" class="icon" /></a> -<a href="pages/Hello/index.jsp"><img src="images/code.gif" height="24" width="24" alt="Go Home" class="icon" /></a> +<a href="<ww:url value="/Home.jsp"/>"><img src="<ww:url value="/images/return.gif"/>" height="24" width="24" alt="Go Home" class="icon"/></a> +<a href="<ww:url value="/pages/Hello/index.jsp"/>"><img src="<ww:url value="/images/code.gif"/>" height="24" width="24" alt="Go Home" class="icon" /></a> <h1>Don't panic! Struts is mostly harmless ...</h1> </body> </html> Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Hello/index.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Hello/index.jsp?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Hello/index.jsp (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Hello/index.jsp Thu Mar 9 05:53:33 2006 @@ -25,7 +25,7 @@ <p><a href="<ww:url value="/View.jsp?src=/pages/Hello/Result.jsp"/>">Result.jsp</a></p> <h2>Actions</h2> -<p><a href="<ww:url value="/View.jsp?src=/WEB-INF/src/java/cookbook/Hello.java"/>">Hello.java</a></p> +<p>None</p> <h2>Configuration files</h2> <p><a href="<ww:url value="/View.jsp?src=/WEB-INF/classes/xwork-Hello.xml"/>">xwork-Hello.xml</a></p> Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/Input.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/Input.jsp?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/Input.jsp (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/Input.jsp Thu Mar 9 05:53:33 2006 @@ -1,13 +1,13 @@ <[EMAIL PROTECTED] prefix="ww" uri="/webwork" %> <html> <head> - <title>Cookbook - Input Form with Select Controls</title> + <title>Cookbook - Complex Input Form using Select Controls</title> <ww:head/> </head> <body> -<ww:form action="SelectResult" method="post"> +<ww:form> <ww:textfield label="Name" name="name" Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/Result.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/Result.jsp?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/Result.jsp (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/Result.jsp Thu Mar 9 05:53:33 2006 @@ -1,7 +1,7 @@ <[EMAIL PROTECTED] prefix="ww" uri="/webwork" %> <html> <head> -<title>Cookbook - Input Form with Select Controls</title> +<title>Cookbook - Complex Input Form using Select Controls</title> </head> <body> <a href="Home.jsp"><img src="images/return.gif" height="24" width="24" alt="Go Home" class="icon" /></a> Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/index.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/index.jsp?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/index.jsp (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Select/index.jsp Thu Mar 9 05:53:33 2006 @@ -3,12 +3,12 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<title>Source Code for Input Form with Select Controls</title> +<title>Source Code for Complex Input Form using Select Controls</title> <link rel="stylesheet" type="text/css" href="<ww:url value="/css/cookbook.css" />" > </head> <body> -<ww:url id="input_exe" action="Select!setup" /> +<ww:url id="input_exe" action="Select" /> <ww:a href="%{input_exe}"> <img src="<ww:url value="/images/execute.gif"/>" alt="" hspace="4" border="0" align="top" class="inline" /> @@ -18,7 +18,7 @@ <img src="<ww:url value="/images/return.gif"/>" alt="" hspace="4" border="0" align="top" class="inline" /> </a> -<h1>Source Code for Input Select Form</h1> +<h1>Source Code for Complex Input Form using Select Controls</h1> <hr noshade="noshade"/> <h2>Server Pages</h2> Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Simple/Input.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Simple/Input.jsp?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Simple/Input.jsp (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Simple/Input.jsp Thu Mar 9 05:53:33 2006 @@ -1,11 +1,11 @@ <[EMAIL PROTECTED] prefix="ww" uri="/webwork" %> <html> <head> - <title>Cookbook - Simple Input Form</title> + <title>Cookbook - Simple Input Form using Action Properties</title> <ww:head/> </head> <body> - <ww:form action="SimpleResult"> + <ww:form> <ww:textfield label="Please enter your name" name="name" /> <ww:submit /> </ww:form> Modified: struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Simple/index.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Simple/index.jsp?rev=384512&r1=384511&r2=384512&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Simple/index.jsp (original) +++ struts/sandbox/trunk/action2/apps/cookbook/src/webapp/pages/Simple/index.jsp Thu Mar 9 05:53:33 2006 @@ -8,7 +8,7 @@ </head> <body> -<ww:url id="input_exe" action="Simple!setup" /> +<ww:url id="input_exe" action="Simple!input" /> <ww:a href="%{input_exe}"> <img src="<ww:url value="/images/execute.gif"/>" alt="" hspace="4" border="0" align="top" class="inline" /> @@ -18,7 +18,7 @@ <img src="<ww:url value="/images/return.gif"/>" alt="" hspace="4" border="0" align="top" class="inline" /> </a> -<h1>Source Code for Input Form</h1> +<h1>Source Code for Simple Input Form using Action Properties</h1> <hr noshade="noshade"/> <h2>Server Pages</h2> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]