struts.convention.result.path не работает в Struts2

Моя текущая структура проекта выглядит следующим образом

WebContent
   WEB-INF
   View
     TestPage.jsp
     other JSP pages...

Мое задание - поместить все страницы JSP в папку WEB-INF и выполнить все относительные изменения в проекте.

WebContent
   WEB-INF
      View
        TestPage.jsp
        other JSP pages...

Поэтому я должен обновить весь тег результата в struts.xml

<result name="success">/View/TestPage.jsp</result>

в

<result name="success">/WEB_INF/View/TestPage.jsp</result>

После поиска в Интернете я обнаружил плагин соглашения о плагин-структурах, чтобы достичь этого, но он следует соглашению об именах.

Могу ли я переопределить конфигурацию плагина соглашения Struts (которая не будет следовать соглашению об именах)? Я тоже пробовал, но это не отражает. мой struts.xml является

<struts>
    <constant name="struts.devMoade" value="true" />
    <constant name="struts.convention.result.path" value="/WEB-INF/View/" />

    <package name="test" extends="struts-default" namespace="/">
        <action name="hello1" class="testAction.Hello1Action">
            <result name="success">/TestPage.jsp</result>
        </action>
    </package>
</struts>

Когда я бегу

localhost:8080/project-name/hello1

Он отображает ошибку 404. Но если я изменю результат в struts.xml как

<result name="success">/WEB-INF/View/TestPage.jsp</result>

Работает нормально.

Я не хочу вносить изменения во все теги результатов. Как я могу добиться этого, делая изменения в одном месте?

1 ответ

Решение

Плагин соглашения использует другого поставщика конфигурации, и эта константа работает только с конфигурацией, созданной соглашением.

<constant name="struts.convention.result.path" value="/WEB-INF/View/" />

Если вы хотите переопределить конфигурацию соглашения, вы должны использовать аннотации.

package testAction;

@ParentPackage("json-default")
@Namespace("/")
@Action(value="hello1", results=@Result(name = "success", location="TestPage.jsp"))
public class Hello1Action extends ActionSupport {
}
Другие вопросы по тегам