Struts 1.3.10 + jdk1.6.0_10 = Tela em Branco

3 respostas
M

Olá! Desenvolvendo usando o Eclipse 3.4.2 e usando o Tomcat 6.0.18, estou recebendo uma tela em branco quando clico no submit da minha tela Logon.jsp. Já bati muito a cabeça e espero que possam me ajudar. :oops: É a primeira vez que eu uso o Struts num projeto do zero…

Logon.jsp

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<HTML>
<HEAD>
<TITLE>Tela de Login</TITLE>
</HEAD>
<BODY>
<H3>Por Favor, Faça o Login</H3>
<html:errors/>
<html:form action="/LogonSubmit" method="POST" focus="username">
<TABLE border="0" width="100%">
<TR>
<TH align="right">Username:</TH>
<TD align="left"><html:text property="username"/></TD>
</TR>
<TR>
<TH align="right">Password:</TH>
<TD align="left"><html:password property="password"/></TD>
</TR>
<TR>
<TD align="right"><html:submit/></TD>
<TD align="left"><html:reset/></TD>
</TR>
</TABLE>
</html:form>
</BODY>
</HTML>

LogonAction.java (Percebi que mesmo sem a Classe vazia, o resultado ainda é uma tela em branco e não um erro).

package action;

import java.io.*;
import java.net.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

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 form.LogonForm;

public class LogonAction extends Action {
	
    //Dados de conexão socket
    private static final String host = "201.76.174.204";
    private static final int port = 43001;
	private static final String forward = "success";
    
    public ActionForward execute(ActionMapping mapping,
            ActionForm form, HttpServletRequest request)
        throws IOException, ServletException {

      ...

        // Return success
        return mapping.findForward(forward); 
    }
}

struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

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

<struts-config>

    <form-beans>
        <form-bean
            name="LogonForm"
            type="form.LogonForm"/>
    </form-beans>

    <global-exceptions>
        <!-- sample exception handler
        <exception
            key="expired.password"
            type="app.ExpiredPasswordException"
            path="/changePassword.jsp"/>
        end sample -->
    </global-exceptions>

    <global-forwards>
           
        <forward
            name="logon"
            path="/Logon.do"/> 
               
    </global-forwards>

    <action-mappings>
        <action
            path="/Logon"
            type="org.apache.struts.actions.ForwardAction"
            parameter="/pages/Logon.jsp"/>

		<action
            path="/LogonSubmit"
            type="action.LogonAction"
            name="LogonForm"
            scope="request"
            validate="true"
            input="/pages/Logon.jsp">
        <forward
                name="success"
                path="/pages/Menu.jsp" />
        </action>       

    </action-mappings>

    <message-resources parameter="MessageResources" />

  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property
        property="pathnames"
        value="/org/apache/struts/validator/validator-rules.xml,
               /WEB-INF/validation.xml"/>
  </plug-in>

</struts-config>

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

  <!DOCTYPE web-app PUBLIC
	"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
	"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  <display-name>Struts Blank Application</display-name>
  
  <!-- 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>resources.application</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>
    <load-on-startup>2</load-on-startup>
  </servlet>

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

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

	<!-- 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>/tags/struts-bean</taglib-uri>
		<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
	</taglib>
	
	<taglib>
		<taglib-uri>/tags/struts-html</taglib-uri>
		<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
	</taglib>
	
	<taglib>
		<taglib-uri>/tags/struts-logic</taglib-uri>
		<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
	</taglib>
	
	<taglib>
		<taglib-uri>/tags/struts-nested</taglib-uri>
		<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
	</taglib>
	
	<taglib>
		<taglib-uri>/tags/struts-tiles</taglib-uri>
		<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
	</taglib> 

</web-app>

Se ficou faltando algo, por favor digam que eu posto assim que puder. Desde já agradeço. :smiley:

3 Respostas

ignacio83

Cara o que aparece no console?

Post também o /pages/menu.jsp

M

ignacio, isso que é bizarro, não imprime nada no console. =(

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<HTML>
<HEAD>
<TITLE>Tela do Menu</TITLE>
<html:base/>
</HEAD>
<BODY>
<logic:present name="user">
<H3>Seja bem vindo, <bean:write name="user" property="username"/>!</H3>
</logic:present>
<logic:notPresent scope="session" name="user">
<H3>Usuário Logado!</H3>
</logic:notPresent>
<html:errors/>
</BODY>
</HTML>

Eu não sou bom com beans, e ainda me enrolo um pouco.

Grato.

ignacio83

Uma dica…

Nem o Apache recomenda mais o uso das tags logic, utilize as funções do JSTL core

Isso

<logic:present name="user">  
</logic:present>

é similar a isso

<c:if test="${user != null}">

</c:if>

Deixe a página sem nada, somente com algum texto e veja se funciona…

E retira esse html:base

Criado 11 de maio de 2009
Ultima resposta 12 de mai. de 2009
Respostas 3
Participantes 2