I'm no validator expert, but here's my take on it. Static JavaScript is produced from the <javascript> subelements of the <validator> elements in the validator config files. For example, the standard validateRequired function contained in the validator-rules.xml file that ships with Struts. Best practice seems to be to keep the static JavaScript in a single file instead of having it generated into each JSP where you want to perform validation. This can be accomplished by setting up a staticJavascript.jsp file like:
<%@ page contentType="javascript/x-javascript" %> <%@ taglib prefix="html" uri="http://jakarta.apache.org/struts/tags-html" %> <html:javascript dynamicJavascript="false"/> Dynamic JavaScript is produced from the <form> subelements of the <formset> elements in the validator config files. So, in the JSP where you want to perform validation, you'd do something like: <script type="text/javascript" src="<c:url value="/staticJavascript.jsp"/>"> </script> <html:javascript formName="theForm" staticJavascript="false"/> <html:form action="/action/path" onsubmit"return validateTheForm(this);"> ... </html:form> If you're using DynaValidatorActionForm (where the validator key is the action path not the form name), I think you'll want to make sure to use the "method" attribute of the <html:javascript> tag. Otherwise you end up with dynamic JavaScript like: function validate/action/path(form) { ... So you'd want something like: <script type="text/javascript" src="<c:url value="/staticJavascript.jsp"/>"> </script> <html:javascript formName="/action/path" method="validateTheForm" staticJavascript="false"/> <html:form action="/action/path" onsubmit"return validateTheForm(this);"> ... </html:form> Quoting Ben Anderson <[EMAIL PROTECTED]>: > Hi, > Can someone expalin the <html:javascript> tag a little bit or point me > somewhere. I'm trying to understand what the dynamic and static attributes > > do. I've read over the html tags page at the struts home page, but it > doesn't explain much. > > I've tried with every combination of static and dynamic = true or false. > > There is javascript being generated (like validateInteger), but not a > validateXXXForm function. > > I've noticed in my app's logger that the static is generated, but after the > > page has already decided it can't find it. Also, is it possible that I'm > going to run into problems writing the .js and then finding it because our > actions are mapped /do/xxx/yyy/zzz? It doesn't seem to be looking in the > right place. > > I've been searching all over the web and through the mail-archive for > answers, but haven't found anything definitive. > > Thanks in advance, > Ben Anderson > > /************************************************************************ > Hi, > > I have the following in my struts-config.xml > > <action path="/admin/createContentType" > type="com.xdeep.pacific.servlet.admin.forms.ContentTypesAction" > name="BillingParametersForm" scope="request" > input="contentTypes.jsp"> > <forward name="failure" > path="/admin/contentTypes.jsp?action=create"/> > <forward name="success" path="/admin/updateBillingParameters.jsp"/> > </action> > > and in my validation.xml > > <form-validation> > <formset> > <form name="BillingParametersForm"> > <field property="contentType" depends="required"> > <arg0 key="admin.prompt.contentType"/> > </field> > </form> > </formset> > </form-validation> > > and my jsp has the following form > > <html:form action="/admin/createContentType" focus="contentType" > onsubmit="validateBillingParametersForm(this);"> > > <html:text property="contentType"/> > <html:submit property="action" value="Create"/> > <html:reset value="Reset"/> > > </html:form> > > <html:javascript formName="BillingParametersForm" > dynamicJavascript="true" staticJavascript="false"/> > <script language="Javascript1.1" src="staticJavascript.jsp"></script> > > > My BillingParametersForm extends org.apache.struts.validator.ValidatorForm > When the field is left blank an alert window does pop up as it should, but > after I dismiss it I get forwarded onto the success page. > > Any suggestions on what I might be doing wrong. > > Thanks, > Paul > > I'm using Vodafone Mail - to get your free mobile email account go to > http://www.vodafone.ie > Use of Vodafone Mail is subject to Terms and Conditions > http://www.vodafone.ie/terms/ > > _________________________________________________________________ > Help STOP SPAM with the new MSN 8 and get 2 months FREE* > http://join.msn.com/?page=features/junkmail > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -- Kris Schneider <mailto:[EMAIL PROTECTED]> D.O.Tech <http://www.dotech.com/> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]