2010-05-06 47 views
1

我試圖在我的項目中實現Struts 2註釋,但我不知道如何。Struts2 - 如何使用Struts2註釋?

我加入了公約,插件版本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

回答

0

我還沒有使用帶註釋的Struts2(Struts2的版本是?你正在學習一些教程或文檔?)。但應該不是位置屬性(在Result annotation)而不是

0

日誌說什麼?你有沒有嘗試使用/HelloWorld.jsp來獲得「成功」。我認爲struts框架沒有找到資源並且正在加載相同的頁面。

當您使用/HelloWorld.jsp時,希望您會看到結果頁面。

1

約定使用不同的約定將CamelCaseAction名稱轉換爲url和jsp的名稱。如果您正在使用公約的違約,我認爲你應該使用的名稱如下:

ActionClass:HelloWorldAction.java

JSP:你好,world.jsp

操作:你好世界

另外,請注意,默認情況下,convention將在WEB-INF/content上查找您的JSP。文檔有點淺顯,您必須通過示例瞭解,但您可以查閱所有默認值:http://struts.apache.org/2.x/docs/convention-plugin.html