Struts2 - 如何使用Struts2注释?

时间:2010-05-06 11:49:48

标签: struts2 annotations

我正在尝试在我的项目中实现Struts 2 Annotations,但我不知道如何。

我将convention-plugin v 2.1.8.1添加到我的 pom

我修改了 web.xml

...
  <init-param>
    <param-name>actionPackages</param-name>
    <param-value>org.apache.struts.helloworld.action</param-value>
  </init-param>
...

我的行动

package org.apache.struts.helloworld.action;

import org.apache.struts.helloworld.model.MessageStore;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;


@Results({
  @Result(name="success", location="HelloWorld.jsp")
})

public class HelloWorld extends ActionSupport {

    public String execute() throws Exception {

        messageStore = new MessageStore() ;     return SUCCESS;
    }

我试图使用我的行动的jsp页面。

 <body>
<h1>Welcome To Struts 2!</h1>
<p><a href="<s:url action='helloWorld'/>">Hello World</a></p>
</body>   

当我按下与 helloWorld 操作相关联的链接时,它会将我发送到完全相同的页面。因此,从index.jsp开始,它将发送到index.jsp。

应该表现的方式:它应该将我发送给 HelloWorld.jsp

我将项目(一个非常简单的HelloWorld应用程序)上传到FileFront,也许有人看到了问题所在。 http://www.filefront.com/16364385/Hello_World.zip

3 个答案:

答案 0 :(得分:1)

Convention使用不同的约定将CamelCaseAction名称转换为url和jsp的名称。如果您使用的是Convention的默认值,我相信您应该使用以下名称:

ActionClass:HelloWorldAction.java

JSP:hello-world.jsp

动作:hello-world

另请注意,默认情况下,约定会在WEB-INF / content上查找您的JSP。文档有点浅,您必须通过示例了解,但您可以在那里查阅所有默认值:http://struts.apache.org/2.x/docs/convention-plugin.html

答案 1 :(得分:0)

我没有使用带有注释的Struts2(Struts2版本?你正在学习一些教程或文档吗?)。但是 location 属性(在Result annotation中)不应该是吗?

答案 2 :(得分:0)

日志说什么?您是否尝试过使用/HelloWorld.jsp获取“成功”。我认为struts框架找不到资源并且正在加载相同的页面。

当你使用/HelloWorld.jsp时,希望你会看到结果页面。