2010-02-21 67 views
2

我想在eclipse中创建一个struts 2项目。我已经下载了最新的struts发行版。但是当我尝试在ECLIPSE中创建一个struts项目时,事情总是会变得混乱。 每当我创建一个动态web项目并将struts库添加到该项目时,会弹出一些错误或其他错误。如何在Eclipse Galileo中创建Struts 2项目?

如何正确设置eclipse的Struts 2项目?

为了得到一个简单的Hello World页面,我所做的:

  1. 创建动态Web项目(procollab)
  2. 添加Struts 2个的罐子WEB-INF/lib目录内
  3. 里面加了相同的库项目构建路径
  4. 设置输出文件夹中的src在WEB-INF/classes中
  5. 创建web.xml中的过滤器将所有请求发送到org.apache.struts2.dispatcher.FilterDispatcher
  6. 在SRC创建struts.xml的

错误,我得到:

HTTP 404。我得到这个任何URL,例如http://localhost:8080http://localhost:8080/procollab

我已经加入到Tomcat项目procollab服务器列表也在eclipse中。但是当我直接访问任何静态资源时,我会看到页面。我在webcontent文件夹中有helloworld.jsp,当我转到http:localhost:8080/procollab/helloworld.jsp时,我正确地获取页面。

我是否正确设置了我的环境?请帮助在WEB-INF/classes中

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

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

    </package> 

</struts> 
+2

错误说明了有关问题的原因。你知道,一旦原因*了解*,解决方案是*明显*。因此,如果您确实很难理解错误,请编辑您的问题以包含实际错误。然后我们会帮助解释它们。 – BalusC 2010-02-21 02:50:06

+0

是的,我已经列入了我得到的问题以及我所做的步骤 – Anand 2010-02-21 03:23:50

+1

步骤3和步骤4是不必要的。 '/ WEB-INF/lib'默认已经被构建路径覆盖。输出文件夹默认情况下已经这样。感谢Eclipse。 – BalusC 2010-02-21 04:00:40

回答

2

HTTP 404。我得到这个任何URL

我struts.xml的文件,例如http://localhost:8080http://localhost:8080/procollab

所以这是唯一的问题?那么,404就意味着请求的URL上没有资源。找不到网页。就那么简单。您需要自己提供/指定资源,Eclipse不会为您这么做。这是你完全控制自己的代码。

我不确定你期望在http://localhost:8080看到什么,所以我会忽略这部分。至于http://localhost:8080/procollab上的404,您只需在web.xml中定义一个<welcome-file>,并确保通过(in)直接通过servlet或过滤器映射或WebContent中的物理文件提供此功能。就这样。

如果你想helloworld.jsp默认着陆页,你需要添加以下到web.xml

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

更新:根据张贴的支柱配置,你这样期待http://localhost:8080/procollab/SayHello.action在您访问http://localhost:8080/procollab时执行。在这种情况下,您需要按如下方式配置<welcome-file>

<welcome-file-list> 
    <welcome-file>/SayHello.action</welcome-file> 
</welcome-file-list> 
+0

我已经为url模式设置了过滤器/ *,通过struts过滤器调度程序。 – Anand 2010-02-21 03:54:41

+0

那么? struts在'/ *'上有没有准备好?显然不是,根据404. – BalusC 2010-02-21 03:56:30

+0

我已经在WEB-INF/classes中创建了一个struts.xml,并且在那里,我在命名空间下有一个包并且在它下面有一个动作,这将引发一个hello world jsp页面 – Anand 2010-02-21 03:59:08