Struts2 sem Spring

Como vai moçada? Estou começando a estudar Struts2 através do Struts2 In Action. Acho que esse livro tem uma certa falha: ele te dá uma aplicação completa para demonstrar todos os capítulos. Quem conhece sabe do que estou falando. Na página inicial da aplicação de exemplo do livro você vai para outras páginas que demonstram conceitos do capítulo em questão. Bom, lendo o livro eu não quis baixar a aplicação e olhar o código a medida que o livro o explicava. Fui construindo pouco a pouco o HelloWorld do capítulo 2. Segue os passos.

1 - criei o projeto no Eclipse Helios, todo configurado com as libs e tal.
2 - criei o web.xml que apenas tinha a tag filter para o FilterDispatcher do Struts2 e mapeada para /*, como mostrado abaixo

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<!--
-->
	<display-name>HelloStruts2</display-name>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
		<init-param>
			<param-name>actionPackages</param-name>
			<param-value>manning</param-value>
		</init-param>
	</filter>

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

3 - criei o struts.xml com a configuração das actions etc. Segue o código:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
	"http://struts.apache.org/dtds/struts-2.0.dtd" >

<struts>
	<constant name="struts.devMode" value="true" />

	<package name="default" namespace="/" extends="struts-default">
		<action name="Menu">
			<result>/menu/Menu.jsp</result>
		</action>
	</package>

	<package name="chapterTwo" namespace="/chapterTwo" extends="struts-default" >
		<action name="Name" >
			<result>/chapterTwo/NameCollector.jsp</result>
		</action>

		<action name="HelloStruts2" class="manning.chapterTwo.HelloStruts2" >
			<result name="SUCCESS">/chapterTwo/succeded.jsp</result>
			<result name="FAIL">/chapterTwo/fail.jsp</result>
		</action>
	</package>
</struts>

Nesse caso, eu só precisava de uma classe, HelloStruts2.java, pra tudo funcionar e tal. Acontece que sempre dava pau. Não funcionava de jeito nenhum. Depois de muito “bate-cabeça”, lembrei do console. Fui dar uma olhada e ele tava me sugerindo que eu adicionasse o listener do Spring. Bom, o livro não falava nada sobre isso, mas se não estava funcionando, aceitei a sugestão do console, mesmo não sabendo de nada sobre Spring (essas são cenas para o próximo capítulo). Adicionei o seguinte no meu web.xml:

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

Subi a aplicação e, como não funcionou, fui direto no console: tava faltando o applicationContext.xml, que até então eu não sabia que era necessário quando se usa o Spring. Beleza, criei um básico, sem nada, apenas com a tag beans vazia. Agora sim, tudo funcionou perfeitamente para uma aplicação de exemplo.
Depois de minha história toda, vem minha pergunta: sou obrigado a usar o Struts2 com o Spring? Segundo o livro, que também tem o listener do Spring no web.xml, isso só seria necessário a partir do capítulo oito. Sei que agora eu posso continuar meu estudo sobre o Struts2, mas uma coisa me intriga: será que sou obrigado a usar Struts2 com Spring? Alguém saberia responder?

Um abraço, galera!