首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Struts 2你好词

Struts 2你好词
EN

Stack Overflow用户
提问于 2014-04-06 12:38:22
回答 3查看 134关注 0票数 0

我是struts 2中的新手,当运行hello示例时,我得到了这个错误HTTP状态404 -没有为名称空间/和动作名Login映射的Action。我把jsp页面放在wepapp/pages文件夹中,如何解决这个问题?

代码语言:javascript
复制
   @ResultPath(value="/")
   public class HelloController extends ActionSupport{

/**
 * 
 */
private static final long serialVersionUID = 1L;
private String name;

public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
    @Action(value="/Login",results={@Result(name="success",location="pages/login.jsp")})
public String execute()throws Exception
{
    return "success";
}
   }

web.xml

代码语言:javascript
复制
 <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>

而这个pom文件

代码语言:javascript
复制
<dependencies>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>3.8.1</version>
  <scope>test</scope>
 </dependency>
    <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
 </dependency>

     <dependency>
      <groupId>org.apache.struts</groupId>
  <artifactId>struts2-core</artifactId>
  <version>2.1.8</version>
</dependency>

<dependency>
      <groupId>org.apache.struts</groupId>
  <artifactId>struts2-convention-plugin</artifactId>
  <version>2.1.8</version>
 </dependency>

 <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
    </dependency>

    <dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
    <scope>provided</scope>
    </dependency>

 </dependencies>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-07 12:07:39

我解决了这个问题,我必须在打包的命名动作中添加HelloController类,因为struts 2扫描位于打包的名为“struts,struts2,action或action”的带注释的类。

票数 0
EN

Stack Overflow用户

发布于 2014-04-06 12:43:56

您应该在url中调用动作名:

代码语言:javascript
复制
http://localhost:<your-port>/Login.action

还将操作名更改为:

代码语言:javascript
复制
@Action(value="Login" ....
票数 0
EN

Stack Overflow用户

发布于 2014-04-07 09:15:26

您的筛选器被废弃为。从Struts2.1.3向上,你需要改变FilterDispatcherStrutsPrepareAndExecuteFilter

最好至少迁移到2.3.16,以避免多年来发现和修补的安全问题。

2.1太老了..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22894137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档