Campo com máscara definida vida

Pessoal,

O trecho de código abaixo faz parte de um fórmulário JSF contendo, dentre outros campos, o campo Nº do processo, cuja máscara de entrada foi definida via Jquery, da sequinte forma:

...
<td>								
<h:inputText id="processo" value="#{diplomaBean.diploma.processo}" maxlength="18" required="#{diplomaBean.semPendencia and diplomaBean.editable}" readonly="#{not diplomaBean.editable}" requiredMessage="Campo Nº. do processo não preenchido" size="18">
<rich:jQuery selector="#processo" query="mask('23074.999999/99-99')" timing="onload" />
<f:converter converterId="processoConverter" />
</h:inputText>
</td>
...

O h:inpuText acima está associado ao atributo “processo” da entidade DiplomaBean.
Necessito, pois, capturar partes individuais do conteúdo preenchido com a máscara acima.
Particularmente, o que eu quero é jogar o conteúdo digitado no trecho “999999” em uma string, o digitado no trecho “99” em outra string e, por fim, o conteúdo digitado
no trecho “99” em uma terceira string.
Com isto, poderia efetuar alguns tratamentos que se fazem necessários.
Tentei usar o seguinte código

...
strMeio = getDiploma().getProcessoFormatado().substring(6,12);
System.out.println("strMeio : "+strMeio);
        	
strFim1 = getDiploma().getProcessoFormatado().substring(13, 15);
System.out.println("strFim1 : "+strFim1);
        	
strFim2 = getDiploma().getProcessoFormatado().substring(16,18);
System.out.println("strFim2 : "+strFim2);
...

colocando-o em um método que é chamado na página do formulário supracitado.
Acontece porém, que ao preencher o formulário, se a execução perder o foco do h:inputText supracitado, o campo processo está vindo vazio, e não consigo quebrá-lo nas três substrings acima mencionadas.
Enfim, para resumir toda a história e ficar mais clara a minha dúvida, basicamente o que eu necessito é, de alguma forma, tratando algum evento, capturar os conteúdos preenchidos nos trechos supracitados da máscara e jogá-los em três subtrins.

Então, temos :

1a dúvida : Qual evento deve ter tratado para a perda de foco de um h:inputText ?
2a dúvida : Uma vez que Jquery captura todo o conteúdo do campo, ou seja, é tudo ou nada, como posso quebrar o conteúdo nas substrings supracitadas, sem abrir mão do uso do Jqyery ?

Alguém poderia me dar alguma “luz no fim do túnel” ?
Agradece,

Max Carvalho

Errata : leia-se “Como quebrar em subtrings trechos do conteúdo de um campo formata via JQuery”

Se isto ajudar, segue, abaixo, trecho de cógido onde ocorre a chamada do método no formulário

...
<div class="botoes">
<h:commandButton action="#{diplomaBean.informarPendenciaDiploma}" value="Enviar" />
<a4j:commandButton immediate="true" action="#{diplomaBean.cancelPendencia}" value="Cancelar" oncomplete="desativarPendencia();$j('#obs').val('');" reRender="areaFormDiploma" />
</div>
...

e, em seguida, o método onde as substrings são capturadas e irão ser utilizadas

public String informarPendenciaDiploma() {
		
		String mensagem = "";
		String strMeio = "";
		String strFim1 = "";
		String strFim2 = "";
		int situacaoAnterior = this.getDiploma().getSituacao();
		int situacaoNova = situacaoAnterior;
		boolean renew = true;
		       
		System.out.println("Processo : " + this.getDiploma().getProcesso());
		System.out.println("Processo formatado : " + this.getDiploma().getProcessoFormatado() );
		
		if ( this.getDiploma().getProcesso()== "" 
		  || this.getDiploma().getProcessoFormatado() == "") {
        	
        	SessionUtil.addMessageError("diploma.pendente.processo.vazio");
			return "erro";
        }
	// verifica se o conteúdo do processo formatado não é vazio
        else if (this.getDiploma().getProcessoFormatado() != "" ) {
        	
        	// captura a 1ªsubstring
        	// conteúdo preenchido no trecho "999999" da máscara
        	strMeio = getDiploma().getProcessoFormatado().substring(6,12);
        	System.out.println("strMeio : "+strMeio);
        	
        	// captura a 2ª substring
        	// conteúdo preenchido no 1º trecho "99" da máscara
        	strFim1 = getDiploma().getProcessoFormatado().substring(13, 15);
        	System.out.println("strFim1 : "+strFim1);
        	
        	// captura a 3ª substring
        	// conteúdo preenchido no 2º trecho "99" da máscara
        	strFim2 = getDiploma().getProcessoFormatado().substring(16,18);
        	System.out.println("strFim2 : "+strFim2);
        	
        	// verifica se alguma das três substrings capturadas é vazia
        	// e exibe a mensagem de que o nº do processo é incompleto
        	if ( strMeio.isEmpty() ) {
        		
        		SessionUtil.addMessageError("diploma.pendente.processo.incompleto");
    			return "erro";
    			
        	} else if ( strFim1.isEmpty() ) {
        		
        		SessionUtil.addMessageError("diploma.pendente.processo.incompleto");
    			return "erro";
    			
        	} else if ( strFim2.isEmpty() ) {
        		
        		SessionUtil.addMessageError("diploma.pendente.processo.incompleto");
    			return "erro";
        	}
        	
        }  else if ( this.getDiploma().getMatricula() == null ) {
        
        	System.out.println("Matrícula  : " + this.getDiploma().getMatricula() );
			SessionUtil.addMessageError("diploma.pendente.matricula.vazia");
			return "erro"; 
			
        } else if (this.getDiploma().getObs() != null && !this.getDiploma().getObs().isEmpty()) {
			
			if ( ObsSoContemBrancos(this.getDiploma().getObs()) ) {
				
				SessionUtil.addMessageError("diploma.pendente.obs.brancos");
				return "erro";
				
			}
			else if (this.getDiploma().getObs().length() > 200) {
				SessionUtil.addMessageError("diploma.pendente.limite.obs");
				return "erro";
			} else if (this.isNovo()) {			
				this.getDiploma().setObs( removeBrancos(this.getDiploma().getObs()) );
				situacaoNova = Situacao.PENDENTE_CADASTRO;
				mensagem = "pendenteCadastro";
			} else if (this.isEmAnalise()) {
				this.getDiploma().setObs( removeBrancos(this.getDiploma().getObs()) );
				situacaoNova = Situacao.PENDENTE_REGISTRO;
				mensagem = "pendenteRegistro";
			} else if (this.isPendenteCadastro() || this.isPendenteRegistro()) {
			
		        this.getDiploma().setObs( removeBrancos(this.getDiploma().getObs()) );
				mensagem = "continuaPendente";
				renew = false;
			} else {
				SessionUtil.addMessageError("diploma.pendente.erro");
				return "erro";
			}
		} else {
			SessionUtil.addMessageError("diploma.pendente.required.obs");
			return "erro";
		}

		if (this.getDiplomaControlComUsuario().atualizarDiploma(this.getDiploma(), situacaoNova)) {
			if (situacaoAnterior == Situacao.EM_ANALISE) {
				this.setDiplomas(this.getAllDiplomasEncaminhadosAndEmAnalise());
			}

			SessionUtil.addMessageSucesso("diploma.pendente.sucesso");

			if (renew) {
				this.renewModel();
			}
		} else {
			mensagem = "processoRepetido";
			this.addMessageProcessoRepetido();
		}

		return mensagem;
		
	}

Espero que alguém consiga me ajudar.
Desde já, agradeço qualquer auxílio que me for prestado.
[]'s
Max

Moderadores,

Me permitam esse UP, pois como enviei a dúvida à noite, é provável que poucos foristas tenha tido conhecimento dela.
Obrigado,

Max

UP

UP, moderadores, me permitam esse UP, pois não obtive nenhum auxílio ainda.