File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Struts and the fly likes Struts complex validation -- no javascript generated? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "Struts complex validation -- no javascript generated?" Watch "Struts complex validation -- no javascript generated?" New topic
Author

Struts complex validation -- no javascript generated?

Jeroen Christiaens
Greenhorn

Joined: Jan 27, 2004
Posts: 2
Hi everyone,

I have defined a complex validation + script in my validation-rules.xml
I declare the validation rule to be applied on a field in the form
but when I try to load the JSP page, I can see that the other checks (like required, minlength etc... are generated, although my own check is not generated. I want to do client checking on this little extra check too because if it's not possible, it's useless (for me) to do checks at the client side at all. The thing that I want to check is that a field A is (almost) equal to a field B, except the final character (which should be A in field A and B in field B). So "0123AA12345A" and "0123AA12345B" will be accepted, otherwise, alert box.

I hope someone already implemented some more complex validation rules and knows how to solve the problem.

Jeroen

-------------------- validation-rules.xml (snipped) --------------
<validator
name="vpnBoxIDsCompareEqualExceptAB" classname="com.mycompany.ui.util.validator.VPNBoxIDsCompareEqualExceptAB"
method="validateVpnBoxIDsCompareEqualExceptAB"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends="" msg="errors.vpnboxidscompareequalexceptab">
<javascript>
<![CDATA[
function validateVpnBoxIDsCompareEqualExceptAB(form) {
var field1 = form['fieldA'];
var field2 = form['fieldB'];
var pack = form['packType'];

if (pack.value != 'DoCheck') {return true;}

if (((field1.type == 'text') || (field1.type == 'textarea')) &&
((field2.type == 'text') || (field2.type == 'textarea')) &&
((field1.value.length > 0) || (field2.value.length > 0)))
{
var sub1 = null;
if (fields1.value.length > 0) {
sub1 = field1.value.substring(0, field1.value.length-1);
}

var sub2 = null;
if (field2.value.length > 0) {
sub2 = field2.value.substring(0, field2.value.length-1);
}

if (sub1 == sub2)
{
if ((field1.value == sub1+'A') && (field2.value == sub2+'B'))
{
return true;
}
}
}

alert('The permanent VPN Box ID and dial-up VPN Box ID are not the same (except A or B)');
return false;
}
]]>
</javascript>
</validator>


---------------------------- declare checks on form fields ----------------
...
<field
property="fieldA"
depends="vpnBoxIDsCompareEqualExceptAB">
<msg name="vpnBoxIDsCompareEqualExceptAB" key="order.status.mask.error.permvpnid"/>
<arg0 key="order.status.vpnbox.permanent"/>
<var>
<var-name>fieldB</var-name>
<var-value>dialupVPNBoxID</var-value>
</var>
<var>
<var-name>packType</var-name>
<var-value>summary.packType</var-name>
</var>
</field>
...
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Struts complex validation -- no javascript generated?