Struts2 - Как использовать аннотации Struts2? - PullRequest
1 голос
/ 06 мая 2010

Я пытаюсь реализовать аннотации Struts 2 в своем проекте, но я не знаю, как.

Я добавил плагин конвенции 2.1.8.1 к своему пом

Я изменил 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 ]

1 голос
/ 06 сентября 2010

Конвенция использует другое соглашение для преобразования имен CamelCaseAction в имена URL и jsp. Если вы используете значения по умолчанию Конвенции, я считаю, что вы должны были использовать следующие имена:

ActionClass: HelloWorldAction.java

JSP: hello-world.jsp

Действие: hello-world

Также обратите внимание, что по умолчанию соглашение будет искать ваши JSP в WEB-INF / контенте. Документация немного поверхностна, вы должны понять примеры, но вы можете просмотреть все значения по умолчанию: http://struts.apache.org/2.x/docs/convention-plugin.html

0 голосов
/ 07 мая 2010

Что говорят логи? Вы пытались использовать /HelloWorld.jsp для «успеха». Я думаю, что структура Struts не находит ресурс и загружает ту же страницу.

Когда вы используете /HelloWorld.jsp, надеюсь, вы увидите страницу результатов.

0 голосов
/ 06 мая 2010

Я не использовал Struts2 с аннотациями (какая версия Struts2? Вы следуете какой-то инструкции или документу?). Но не должен ли атрибут location (в аннотации Result ) иметь вместо значение ?

...