Problema com Struts e Velocity

0 respostas
MarcusSaad

Boa tarde Pessoal!

Venho quebrando a cabeça a alguns dias e tenho achado muito dificil "manusear" ambas ferramentas em conjunto.

Quero fazer um esqueminha simples, onde eu entro com nome, sobrenome e id. Faço uma verificacao de nao deixar os campos nome e sobrenome nulos.

Até ai tudo bem.

O que tenho é isso :

Struts-Config
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">


<struts-config>
    <form-beans>	
        <form-bean name="personalForm" type="PersonalForm"/>   
		
    </form-beans>
    
    <global-exceptions>
    
    </global-exceptions>

    <global-forwards>
        <forward name="welcome"  path="/Welcome.do"/>
		<forward name="userLogin" path="/userLogin.do"/>		

    </global-forwards>

    <action-mappings>
        <action input="/userLogin.vm" name="form" path="/userLogin"  type="PersonalAction">
        <forward name="success" path="/success.vm" />
        <forward name="failure" path="/failure.vm" />
        </action>
		<action path="/Welcome" forward="/welcomeStruts.vm"/>		
		
		<action type="org.apache.struts.actions.ForwardAction" path="/userLogin" parameter="/userLogin.vm"/> 
		<action type="org.apache.struts.actions.ForwardAction" path="/failure" parameter="/failure.vm"/> 
		<action type="org.apache.struts.actions.ForwardAction" path="/success" parameter="/success.vm"/>
		
    </action-mappings> 
    


</struts-config>
<web-app>


  <!-- Example Database Initialization Servlet Configuration
  <servlet>
    <servlet-name>database</servlet-name>
    <servlet-class>org.apache.struts.example.DatabaseServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  -->


  <!-- Standard Action Servlet Configuration (with debugging) -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>application</param-name>
      <param-value>ApplicationResources</param-value>
    </init-param>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>validate</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- Define Velocity template compiler -->
  <servlet>
    <servlet-name>velocity</servlet-name>
    <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>

    <init-param>
      <param-name>org.apache.velocity.toolbox</param-name>
      <param-value>/WEB-INF/toolbox.xml</param-value>
   </init-param>

    <init-param>
      <param-name>org.apache.velocity.properties</param-name>
      <param-value>/WEB-INF/velocity.properties</param-value>
   </init-param>

   <load-on-startup>10</load-on-startup>
  </servlet>


  <!-- Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


  <!-- Map *.vm files to Velocity -->
  <servlet-mapping>
    <servlet-name>velocity</servlet-name>
    <url-pattern>*.vm</url-pattern>
  </servlet-mapping>



  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

  <!-- Example Application Tag Library Descriptor
  <taglib>
    <taglib-uri>/WEB-INF/app.tld</taglib-uri>
    <taglib-location>/WEB-INF/app.tld</taglib-location>
  </taglib>
  -->

  <!-- Struts Tag Library Descriptors -->
  <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>

</web-app>
PersonalForm
public class PersonalForm {
	
private String nome;
private String sobrenome;
private String id;

public String getNome() {
	return nome;
}
public void setNome(String nome) {
	this.nome = nome;
}
public String getSobrenome() {
	return sobrenome;
}
public void setSobrenome(String sobrenome) {
	this.sobrenome = sobrenome;
}
public String getId() {
	return id;
}
public void setId(String id) {
	this.id = id;
}


}
PersonalAction
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;

public class PersonalAction extends Action {

	public ActionForward executes(ActionMapping mapping, ActionForm form,
			HttpServletRequest req, HttpServletResponse res) {

		PersonalForm psf = (PersonalForm) form; // Acredito que tenha algum enrrosco por aqui
		String id = psf.getId();
		String nome = psf.getNome();
		String sobrenome = psf.getSobrenome();

		if ((nome != null) && (sobrenome != null)) {
			return mapping.findForward("sucess.vm");

		} else
			return mapping.findForward("failure.vm");

	}
}
<form action="/userLogin.do" method="post">	 				
		<tr>
		<td width="108">Nome</td>
		<td width="250">
		<input type="text" name="nome"value="$!personalForm.nome "style="width: 100%">								
		</td>																			
		</tr>
		<tr></tr>
											
		<tr>
		<td width="108">Sobrenome</td>
		<td width="250">
		<input type="text" name="sobrenome" value="$!personalForm.sobrenome"style="width: 100%">								
		</td>																					
		</tr>
		<tr></tr>
											
		<tr>
		<td width="108">ID</td>
		<td width="250">
		<input type="text" name="id" value="$!personalForm.id"style="width: 100%">								
		</td>																					
		</tr>
		<tr></tr>
											
		<td width="382" align="right">
		<input type="submit" value="Salvar">
		</td>
</form>

O que está acontecendo :

Após preencher o form, quando sou redirecionado para a login.do, recebo o seguinte erro

type Status report

message /userLogin.do

description The requested resource (/userLogin.do) is not available.

O que fazer?

Criado 17 de agosto de 2011
Respostas 0
Participantes 1