(Struts) Gerador de Mock para o Ultra Mock

Galera boa tarde :smiley: , estou tentando desenvolver uma paginas jsp que gera o xml pronto para ser utilizado no ultra mock…
http://www.certificacaojava.com.br
porém… em modo console adicionando 1 questão por arquivo funcionou legal, mas utilizando struts (aprendendo) estou com algumas dificuldades…
gostaria de saber se vcs podem me ajudar com esse fonte

1º acredito que esteja meio bagunçado os codigos ou sem os padrões de nome… então me desculpem
2º no metodo que eu fiz deveria criar pelo menos 1 pergunta por arquivo xml… preciso que crie quantas necessarias de acordo com o que o usuario digitar
3º ainda falta implementar algumas coisas de struts como messages e logics… mas isso eu irei fazer logo após terminar a parte funcional

mock.jsp

<%@ taglib uri="WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="WEB-INF/struts-logic.tld" prefix="logic" %>
<html:html>
<head>

<script type="text/JavaScript" language="JavaScript">
function listar(campos){
var j = 0;
var i = 0;

var campos = campos;



if(antigo<campos){
	for (var i=campos; i<6; i++){
		document.getElementById("alternativMock[" + i +"]").style.display = "none";
		document.PerguntasBean.totalQuestoes.value="B";

	}
}else{
	for (var j=1; j<campos; j++){
		document.getElementById("alternativMock[" + j +"]").style.display = "block";
	}
}
var antigo = document.PerguntasBean.alternativMock.value;

}

</script>

<title>Ultra Mock</title>

</head>

<body>

<html:form action="/pergunta.do" method="post" name="PerguntasBean" type="org.apache.struts.validator.DynaValidatorForm">
Total de Questões: <input type="text" name="totalQuestoes" size="2" maxlength="2" /><br />
Dificuldade: <input type="text" name="dificuldadeMock" size="2" maxlength="2" /><br />
Assunto: <input type="text" name="assuntoMock" size="2" maxlength="2" /><br />
Pergunta: <br /><textarea name="perguntaMock" cols="30" rows="3"></textarea><br />
Código Java: <br /><textarea name="codeMock" cols="50" rows="15"></textarea><br />

Quantidade de Alternativas: 
<select name="alternativMock" onChange="listar(document.PerguntasBean.alternativMock.value);">
	<option value="1">1</option>
	<option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	<option value="5">5</option>
	<option value="6">6</option>
	<option value="7">7</option>
</select><br />

<div id="alternativMock[0]" style="display: block;"><input type="text" name="alternativMock[0]" size="20"/></div>
<div id="alternativMock[1]" style="display: none;"><input type="text" name="alternativMock[1]" size="20"/></div>
<div id="alternativMock[2]" style="display: none;"><input type="text" name="alternativMock[2]" size="20"/></div>
<div id="alternativMock[3]" style="display: none;"><input type="text" name="alternativMock[3]" size="20"/></div>
<div id="alternativMock[4]" style="display: none;"><input type="text" name="alternativMock[4]" size="20"/></div>
<div id="alternativMock[5]" style="display: none;"><input type="text" name="alternativMock[5]" size="20"/></div>
<div id="alternativMock[6]" style="display: none;"><input type="text" name="alternativMock[6]" size="20"/></div>

<br />
Resposta Correta: <input type="text" name="respostaMock" size="2" maxlength="2"/><br />
<br />
<input type="Submit" name="enviar" value="Enviar" />  <input type="Submit" name="finalizar" value="Finalizar" /> <input type="Reset" Value="Limpar" />

</html:form>

</body>
</html:html>

Pacote bean:
PerguntasBean.java

package bean;

public class PerguntasBean {

	String assuntoMock;
	String perguntaMock;
	String codeMock;
	String alternativasMock;
	String respostaMock;
		
	
	/**
	 * @return
	 */
	public String getAlternativasMock() {
		return alternativasMock;
	}

	/**
	 * @return
	 */
	public String getAssuntoMock() {
		return assuntoMock;
	}

	/**
	 * @return
	 */
	public String getCodeMock() {
		return codeMock;
	}

	/**
	 * @return
	 */
	public String getPerguntaMock() {
		return perguntaMock;
	}

	/**
	 * @return
	 */
	public String getRespostaMock() {
		return respostaMock;
	}

	/**
	 * @param string
	 */
	public void setAlternativasMock(String string) {
		alternativasMock = string;
	}

	/**
	 * @param string
	 */
	public void setAssuntoMock(String string) {
		assuntoMock = string;
	}

	/**
	 * @param string
	 */
	public void setCodeMock(String string) {
		codeMock = string;
	}

	/**
	 * @param string
	 */
	public void setPerguntaMock(String string) {
		perguntaMock = string;
	}

	/**
	 * @param string
	 */
	public void setRespostaMock(String string) {
		respostaMock = string;
	}

}

DadosQuestoesBean.java

package bean;

public class DadosQuestaoBean {
	String totalQuestoes;
	String dificuldadeMock;

	public String getDificuldadeMock() {
		return dificuldadeMock;
	}

	public String getTotalQuestoes() {
		return totalQuestoes;
	}

	public void setDificuldadeMock(String string) {
		dificuldadeMock = string;
	}

	public void setTotalQuestoes(String string) {
		totalQuestoes = string;
	}

}

Pacote action:

MockAction.java

package action;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;

import bean.DadosQuestaoBean;
import bean.PerguntasBean;

public class MockAction extends Action{
	public ActionForward execute(
		ActionMapping mapping,
		ActionForm form,
		HttpServletRequest request,
		HttpServletResponse response) throws IOException, Exception{
			
			try{
		DynaValidatorForm dynaForm = (DynaValidatorForm) form;
		PerguntasBean perguntasBean = new PerguntasBean();
		DadosQuestaoBean dadosBean = new DadosQuestaoBean();
		
		dadosBean.setTotalQuestoes((String) dynaForm.get("totalQuestoes"));
		dadosBean.setDificuldadeMock((String) dynaForm.get("dificuldadeMock"));
		perguntasBean.setAssuntoMock((String) dynaForm.get("assuntoMock"));
		perguntasBean.setPerguntaMock((String) dynaForm.get("perguntaMock"));
		perguntasBean.setCodeMock((String) dynaForm.get("codeMock"));
		perguntasBean.setAlternativasMock((String) dynaForm.get("alternativMock[0]"));
		perguntasBean.setAlternativasMock((String) dynaForm.get("alternativMock[1]"));
		perguntasBean.setAlternativasMock((String) dynaForm.get("alternativMock[2]"));
		perguntasBean.setAlternativasMock((String) dynaForm.get("alternativMock[3]"));
		perguntasBean.setAlternativasMock((String) dynaForm.get("alternativMock[4]"));
		perguntasBean.setAlternativasMock((String) dynaForm.get("alternativMock[5]"));
		perguntasBean.setAlternativasMock((String) dynaForm.get("alternativMock[6]"));
			}catch(Exception e){
				e.printStackTrace();
				return (mapping.findForward("falha"));
			}
		
		return (mapping.findForward("sucesso"));
	}
}

pacote deafault:

GeraXML.java

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import bean.DadosQuestaoBean;
import bean.PerguntasBean;

public class GeraXML {
	GeraXML() throws IOException {
		File arquivo = new File("arquivo.xml");
		FileWriter writer = new FileWriter("arquivo.xml");
		PrintWriter saida = new PrintWriter(writer);
		DadosQuestaoBean dadosBean = new DadosQuestaoBean();
		PerguntasBean perguntas = new PerguntasBean();

		saida.println("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
		saida.println("<mock name=\"Gera Mock\">");
		saida.println(
			"	<info difficulty=\""
				+ dadosBean.getDificuldadeMock()
				+ "\" questions=\""
				+ dadosBean.getTotalQuestoes()
				+ "\">");
		saida.println("		<disclaimer>");
		saida.println("			Autoria Roger Niero, Jefferson Molino.");
		saida.println("		</disclaimer>");
		saida.println("	</info>");
		saida.println("	<problems>");
		for (int i = 1; i <= Integer.parseInt(dadosBean.getTotalQuestoes()); i++) {
			saida.println(
				"		<single-answer-problem id=\""
					+ i
					+ "\" subject=\""
					+ perguntas.getAssuntoMock()
					+ "\">");
			saida.println(
				"			<question>"
					+ perguntas.getPerguntaMock()
					+ "</question>");
			if (perguntas.getCodeMock() != null) {
				saida.println("<code>");
				char code[] = new char[400];
				code = perguntas.getCodeMock().toCharArray();
				for (int k = 0; k < code.length; k++) {
					if (code[k] == 13
						|| code[k] == '\''
						&& code[k + 1] == 'n') {
						saida.println("");
					} else {
						saida.print(code[k]);
					}
				}
				saida.println("</code>");
			}
			for (int j = 1; j <= 7; j++) {
				//if (perguntas.getAlternativasMock()[j - 1] == null) {
				if (perguntas.getAlternativasMock() == null) {
					break;
				} else {
					saida.println(
						"			<option id=\""
							+ j
							+ "\">"
							+ perguntas.getAlternativasMock()
							+ "</option>");
							//perguntas.getAlternativasMock()[j - 1] utiliza o vetor de alternativas
				}
			}
			saida.println(
				"			<answer>"
					+ perguntas.getRespostaMock()
					+ "</answer>");
			saida.println("		</single-answer-problem>");
		}
		saida.println("	</problems>");
		saida.println("</mock>");
		saida.close();
		writer.close();
	}
}

WebContent:

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
                               "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

	<!-- Origens de Dados -->
	<data-sources>
	</data-sources>

	<!-- Beans de Formulário -->
	<form-beans>
			<form-bean name="PerguntasBean" type="org.apache.struts.validator.DynaValidatorForm">
				<form-property name="totalQuestoes" type="java.lang.String" />
				<form-property name="dificuldadeMock" type="java.lang.String" />
				<form-property name="assuntoMock" type="java.lang.String" />
				<form-property name="perguntaMock" type="java.lang.String" />
				<form-property name="codeMock" type="java.lang.String" />
				<form-property name="alternativMock[0]" type="java.lang.String" />
				<form-property name="alternativMock[1]" type="java.lang.String" />
				<form-property name="alternativMock[2]" type="java.lang.String" />
				<form-property name="alternativMock[3]" type="java.lang.String" />
				<form-property name="alternativMock[4]" type="java.lang.String" />
				<form-property name="alternativMock[5]" type="java.lang.String" />
				<form-property name="alternativMock[6]" type="java.lang.String" />
				<form-property name="respostaMock" type="java.lang.String" />
			</form-bean>
	</form-beans>

	<!-- Exceções Globais -->
	<global-exceptions>
	</global-exceptions>

	<!-- Avanços Globais -->
	<global-forwards>
	</global-forwards>

	<!-- Mapeamentos de Ações -->
	<action-mappings>
		<action name="PerguntasBean" path="/pergunta" scope="session" type="action.MockAction" unknown="false" validate="false">
			<forward name="sucesso" path="/mock.jsp" />
			<forward name="falha" path="/mock.jsp" />
		</action>
	</action-mappings>

	<!-- Recursos da Mensagem -->
	<message-resources parameter="br.com.mock.resources.ApplicationResources"/>

</struts-config>

Agradeço desde já,
[]'s :smiley: