【问题标题】:How to create Struts 2 project in Eclipse Galileo?如何在 Eclipse Galileo 中创建 Struts 2 项目?
【发布时间】:2010-02-21 02:33:49
【问题描述】:

我想在 Eclipse 中创建一个 struts 2 项目。我已经下载了最新的 struts 发行版。但是当我尝试在 ECLIPSE 中创建一个 struts 项目时,事情总是变得令人困惑。 每当我创建一个动态 Web 项目并将 struts 库添加到该项目时,都会弹出一些错误或其他错误。

如何正确设置 Eclipse Struts 2 项目?

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

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

我得到的错误:

Http 404。对于任何 URL,我都会得到这个,例如 http://localhost:8080http://localhost:8080/procollab

我也在 eclipse 中的 tomcat 服务器列表中添加了项目 procollab。但是当我直接访问任何静态资源时,我会得到页面。我在 webcontent 文件夹中有 helloworld.jsp,当我转到 http:localhost:8080/procollab/helloworld.jsp 时,我得到了正确的页面。

我是否正确设置了我的环境?请帮忙

我在 WEB-INF/classes 中的 struts.xml 文件

<?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>

【问题讨论】:

  • 错误说明了问题的原因。要知道,一旦了解了原因,解决方案就显而易见了。因此,如果您确实很难理解错误,请编辑您的问题以包含实际错误。然后我们将帮助解释它们。
  • 是的,我已经列出了我遇到的问题和我所做的步骤
  • 步骤 3 和 4 是不必要的。 /WEB-INF/lib 默认情况下已经被构建路径覆盖。默认情况下,输出文件夹已经是这样了。感谢 Eclipse。
  • 另一个“顺便说一句”:您也可以将struts.xml 放在src 文件夹中。它将自动被带到/WEB-INF/classes。无需移动/复制/疯狂;) Eclipse 完成了所有令人讨厌的工作。

标签: java eclipse struts2


【解决方案1】:

Http 404。对于任何 URL,我都会得到这个,例如 http://localhost:8080http://localhost:8080/procollab

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

我不确定您希望在http://localhost:8080 看到什么,所以我将忽略这部分。至于http://localhost:8080/procollab 上的404,您只需要在web.xml 中定义一个&lt;welcome-file&gt; 并确保它可以(直接)通过servlet 或过滤器映射或WebContent 中的物理文件获得.就是这样。

如果您想将helloworld.jsp 设为默认登录页面,您需要将以下内容添加到web.xml

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

更新:根据发布的 struts 配置,您因此希望在访问 http://localhost:8080/procollab 时执行 http://localhost:8080/procollab/SayHello.action。在这种情况下,您需要配置&lt;welcome-file&gt;,如下所示:

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

【讨论】:

  • 我已经为 url 模式 /* 设置了一个过滤器,以便通过 struts 过滤器调度程序。
  • 所以? struts 在/* 上准备好了吗?显然不是,根据 404。
  • 我在 WEB-INF/classes 中创建了一个 struts.xml,在那里,我在命名空间 / 下有一个包,在它下面有一个动作,它将打开一个 hello world jsp 页面
  • 那么您需要发布有关 struts 配置的更多详细信息,以及服务器启动日志中的任何不一致之处。
  • 我尝试做的是 web.xml -> Filter -> struts.xml -> SayHello.action -> /hello.jsp
猜你喜欢
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多