No sé si esto servirá igual te orienta, porque yo me estoy iniciando y no sé irá bien la cosa pero el caso es que hace lo que tú quieres bueno que es con struts :
 
mi combo municipios carga el de codigo postal  
 Código HTML:
 <html:select property="municipio" onchange="javascript:cargarcodigopostal();" >
	<html:optionsCollection property="municipios" value="codigo"      label="nombre" />
		</html:select>
			
<html:select property="codigopostal">
		<html:optionsCollection property="codigospostales" value="codigo"          label="nombre" />
</html:select> 
 funcion javascript
:  
 Código PHP:
     
function cargarcodigopostal(){
    document.forms[0].action="codigopostalproveedores.do";
    document.forms[0].submit();
} 
    
  struts-config.xml 
 Código PHP:
     
    <action path="/codigopostalproveedores" input="/paginas.proveedores.jsp"
                type="com.Action.ProveedoresCodigoAction" name="proveedoresForm"
                scope="session" unknown="false" validate="false">
                <forward name="exito" path="/paginas/proveedores.jsp"></forward>
        </action> 
    
  y mi Action, he de dedir que en vez de obtener los códigos en una consulta de base de datos, tenemos un servicio web porque hay datos centralizados, pero con cambiar lo del servicio por la consulta  será suficiente  
 Código PHP:
    public class ProveedoresCodigoAction extends Action{
    public ActionForward execute (ActionMapping mapping,ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response)throws Exception
    {
        ProveedoresForm proveedoresForm= (ProveedoresForm) form;
        long idmunicipio=proveedoresForm.getMunicipio();
             //servicio web
        ClienteCodigopostal codigopostalWs=new ClienteCodigopostal();
        proveedoresForm.setCodigospostales(codigopostalWs.getCodigopostalfiltro(idmunicipio));
        return (mapping.findForward("exito"));
    }
 
} 
    
  y hasta aquí llego.. espero que te sirva de algo y suerte