If the "id" is an integer then you're getting an overflow error. This is trivially verifiable by entering numbers less-than, and greater-than, 2^32. This is not technically a Struts issue, although you may need to change the way you're getting the ID from the form, because:
Your regular expression is incorrect and will not do anything related to checking for a 10-digit number, your regular expression checks for percent signs surrounding a series of digits of arbitrary length. Searching the web for Java regular expressions should help you. Your pattern matcher shouldn't also include the SQL syntax.