actionMapping X Folha de Estilo

4 respostas
H

Alguém pode me explicar porque quando eu acesso uma página jsp diretamente através do link no browser a folha de estilo aparece normalmente, se eu acessar a página usando o actionMapping, a página aparece mas sem a formatação da folha de estilo.

Exemplo: Meu ActionForward é assim
if (usuariovalido){ 
  return actionMapping.findForward("loginsuccesso");
}
else{
  return actionMapping.findForward("loginfalhou");
}
Minha página login.jsp é:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html:html>
<head>
<link type="text/css" rel="stylesheet" href="Estilo.css">
<title><bean:message key="geral.entrelogin"/></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<html:form action="loginAction" method="post">
<br>

<table width="200" border="0" align="center">
  <tr>
    <td><bean:message key="geral.nomeusuario"/>:</td>
    <td><html:text property="usuario"/></td>
  </tr>
  <tr>
    <td><label><bean:message key="geral.senha"/>:</label></td>
    <td><html:text property="senha"/></td>
  </tr>
  <tr align="right">
    <td colspan="2">
      <html:submit value="Submit" property="Submit"/>      
      <html:reset value="Reset"/>
    </td>
  </tr>
</table>

</html:form>


</body>
</html:html>
O meu struts-config está assim:
<action path="/loginAction" type="archeslib.LoginAction" name="loginActionForm" scope="request" input="/login.jsp">
      <forward name="loginsuccesso" path="/pages/restritas/arearestrita.jsp" />
      <forward name="loginfalhou" path="/pages/login.jsp" />
    </action>

Se eu acessar a página por http://localhost:8080/login.jsp, a folha de estilo é carregada, mas se eu errar o login, o ActionForward chamará o forward "loginfalhou", como descrito anteriormente, o qual carregará novamente a página de login, mas dessa vez ele não carrega a folha de estilo "Estilo.css".
Será algum problema na chamada da folha de estilo ""?

Obrigado,
Herlen

4 Respostas

smota

Sinheeeeeeeeeeeeeeeee.

Use caminhos absolutos e não relativos, afinal de contas para acessar o servlet vc usa um endereco diferente do JSP.

Tente colocar href="/estilo.css" (e colocar o arquivo na raiz do site - claro que vc pode criar yuma estrutura mais criativa e organizada)

H

Sinheeeeeeeeeeeeeeeee.

Use caminhos absolutos e não relativos, afinal de contas para acessar o servlet vc usa um endereco diferente do JSP.

Tente colocar href="/estilo.css" (e colocar o arquivo na raiz do site - claro que vc pode criar yuma estrutura mais criativa e organizada)

Né Ké isso mesmo. hehehe.
Quando passamos muito tempo programando ficamos doidos ou cegos. (Acho que fiquei os dois, rs)

valeu smota

cu_ringa

rapaz eu to com um problema parecido com esse. Qnd clico no botao cadstrar da minha jsp ele faz o seguinte percursso:

xxx.jsp -> ActionForm -> Action -> DAO -> yyy.jsp -> xxx.jsp

sendo q qnd eu n redireciono o controle volto ate pag xxx.jsp mas o css e os dados q eram para ser mostrados nessa paginas (num iframe), originados da pag yyy.jsp n aparecem??? mas quando redireciono funciona.

codigo que funciona

&lt;forward name="sucesso" path="/pages/jsp/empresa.jsp" redirect="true" /&gt;

codigo q nao funciona

&lt;forward name="sucesso" path="/pages/jsp/empresa.jsp" /&gt;

e ai algem sabe o pq???

smota

Se eu entendi direito (o que eu nao tenho certeza) o seu problema é o mesmo da Herlen.

quando você não faz o redirect o basepath não é alterado e as requisições dos elementos da página (imagens, css, etc.) são baseadas no path atual e não no novo (i.e: do yyy.jsp e não do xxx.jsp).

Se vc colocar o caminho absoluto (em relação a sua aplicação é claro) o CSS será encontrado.

Criado 30 de março de 2005
Ultima resposta 30 de mar. de 2005
Respostas 4
Participantes 3