Action no welcome-file causa browsing de diretório

Considerando que minha primeira página do site já tem coisas a serem processadas por uma “Action”… não poderia colocar:

	<welcome-file-list>
		<welcome-file>Teste.action</welcome-file>
	</welcome-file-list>

??

Não está direcionando para a Action como eu imaginava… abre a estrutura de diretórios da pasta!

Como eu deveria fazer isso?

Você poderia postar o restante de seu web.xml?

Olá Leandro Carvalho,

Bom, até onde sei funciona sim mas parece que está faltando a barra antes da action:

Ou seja,

<welcome-file-list>   
    <welcome-file>/Teste.action</welcome-file>   
</welcome-file-list>

Experimente.

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
	xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>TesteStruts</display-name>
	<welcome-file-list>
		<welcome-file>/HelloWorld.action</welcome-file>
	</welcome-file-list>

	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.FilterDispatcher
		</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

Do jeito que está aí, se eu tiver um arquivo “index.jsp”, ele abre esse index.jsp sem antes passar por nenhuma Action, se eu não tiver nenhuma página chamada index.jsp, aparece a estrutura de diretórios, e o curioso é que se eu tiver um arquivo chamado “HelloWorld.action”, ele abre este arquivo! O que me faz acreditar que não é possível fazer isto que eu estou fazendo… :confused:

Eu penso que este “welcome-file” é para indicar o caminho do “file” (arquivo) que deve ser aberto para quem não especificar via URL.

No caso o action do Struts2 é diferente já que ele não é um arquivo. Ele é só uma URL que é interceptada e tratada pelo Filter do Struts2.

Se você quer que ele chame esta action eu te aconselho a utilizar o seguinte recurso:

Crie um index.html (o com o nome que você quiser =]) com o seguinte codigo:

&lt;html&gt; &lt;head&gt; &lt;META HTTP-EQUIV="Refresh" CONTENT="0; URL=/HelloWorld.action"&gt; &lt;/head&gt; &lt;body&gt; &lt;/body&gt; &lt;/html&gt;

Onde o “0” é a quantidade de segundos antes do redirecionamento.

Daí configure seu web.xml com o “welcome-file” assim:

&lt;welcome-file-list&gt; &lt;welcome-file&gt;/index.html&lt;/welcome-file&gt; &lt;/welcome-file-list&gt;

Ai é só correr para o abraço! =]

Espero ter ajudado. Até.

Até aí o:

<%
response.sendRedirect("/testestruts/Inicio.do");
%>

Resolve… mas… feio, né? :stuck_out_tongue: