Struts: html:select

3 respostas
trevezani

Caros amigos,

Estou estudando o framework Struts e estou tendo algumas dificuldades com a tag html:select. Como faço para quando a tela aparecer o select ser posicionado na minha informação de ID 2 definindo isto atraves do bean?

Tentei colocar o código:

((formCadastroAluno)form).setNome(“teste”);

no bean mas ocorre o seguinte erro:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException

org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)

org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)

org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)

javax.servlet.http.HttpServlet.service(HttpServlet.java:689)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

root cause

java.lang.NullPointerException

com.exemplo.struts.actions.actionFormCadastroAluno.execute(actionFormCadastroAluno.java:56)

org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)

org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)

javax.servlet.http.HttpServlet.service(HttpServlet.java:689)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

3 Respostas

trevezani

Esse erro que eu postei ocorreu quando eu tentei valorar o atributo nome. Mas o mesmo ocorre com o select curso.

Alguem já passou por isso?

boaglio

Pra entender melhor o erro precisamos ver o JSP e o controller.

Quando for postar trechos de código, use as tags CODE.

fica mais fácil
 de ler o código assim!
trevezani

Estou tentando valorar alguns campos do meu form de edição. Abaixo estão os fontes:

JSP

<body bgcolor="white">
  <html:form action="processaCadastroAluno" focus="codigo">
    <h2>Cadastro de aluno</h2>
    
    <table>
      <tr>
        <td>Código:</td>
        <td>
          <html:text property="codigo" size="10"/>
        </td>
      </tr>
      
      <tr>
        <td>Matrícula:</td>
        <td>
          <html:text property="matricula" size="20"/>
        </td>
      </tr>
      
      <tr>
        <td>Nome:</td>
        <td>
          <html:text property="nome" size="50"/>
        </td>
      </tr>

      <tr>
        <td>Curso:</td>
        <td>
          <html:select property="curso">
              <option value="">Selecione seu curso</option>
              <html:options collection="listaCursos" property="value" labelProperty="label"/>
          </html:select>
        </td>
      </tr>
      
      <tr>
        <td></td>
        <td align="right">
          <html:submit/><html:reset/>
        </td>
      </tr>
      
      <tr>
        <td></td>
        <td>
          <br/>
          <html:errors/>
        </td>
      </tr>
    </table>
  </html:form>
</body>

Bean:

public ActionForward execute(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        try {
            FachadaModelo fachada  = FachadaModelo.getInstance();
            Vector cursos      = fachada.getCursos();
            
            request.getSession(true).setAttribute("listaCursos", cursos);
            
            ((formCadastroAluno)form).setNome("Teste");
            
            return mapping.findForward("cadastroAluno");
        } catch (SQLException e) {
            ActionMessages erros  = new ActionErrors();
            
            erros.add( ActionErrors.GLOBAL_MESSAGE, new ActionMessage("errors.sqlerror") );
            saveErrors(request, erros);
            
            return mapping.findForward("excecoes");
        }
        
    }

Eu estou tenatndo valorar meus campos acessando os metodos do meu ActionForm:

...
((formCadastroAluno)form).setNome("Teste");
...

Com isso está ocorrendo o seguinte erro:

javax.servlet.ServletException
	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

root cause

java.lang.NullPointerException
	com.exemplo.struts.actions.actionFormCadastroAluno.execute(actionFormCadastroAluno.java:56)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
Criado 29 de março de 2006
Ultima resposta 29 de mar. de 2006
Respostas 3
Participantes 2