Пространство имен пакета Struts.xml в Eclipse - PullRequest
1 голос
/ 19 июля 2011

Я пытаюсь настроить сервер Apache Tomcat с помощью приложения Struts. Проблема заключалась в том, что структура каталогов проекта была плохо намечена. Я обновил его и столкнулся с проблемой при попытке запустить свой сервер. Моя структура папок выглядит следующим образом.

enter image description here

Главное, что я изменил, - это переместил все файлы jsp в отдельную папку, изначально они находились прямо в папке Web Content. Теперь моя проблема в том, что я думал, что единственное, что мне нужно было изменить, это пространство имен по умолчанию для пакета struts.xml (единственное, что они сделали), чтобы "/ jsp" думал, что "/" будет указывать на папку веб-материалов, и добавление jsp приведет к правильная папка. Однако, похоже, это не так. Я получаю сообщение об ошибке «Нет действия, сопоставленного для пространства имен» / «и имя действия mainDashboardHome». (попытался очистить сервер, очистить кэш FF и перезапустить Eclipse), как будто он даже не увидел, что я изменил пространство имен пакета. Мой web.xml - это супер базовая фильтрация всех шаблонов URL в struts2. Единственное, о чем я могу думать, это список файлов Welcom: необходимо изменить перенаправление Welcome.jsp ... код ниже. Не уверен, что изменить его на.

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
</head>
<body>
  <% response.sendRedirect("mainDashboardHome.action"); %>
</body>
</html>

Также начало определения моего пакета struts.xml с действием панели мониторинга (находится в папке SRC):

<struts>
...  
<package name="default" extends="struts-default" namespace="/jsp">  
...  
<action name="mainDashboardHome" method="mainDashBoard"
        class="mainDashboard.Action.ApplicationRouteAction">
        <result name="success">test.jsp</result>
        <result name="error">Login.jsp</result>

    </action>

Ответы [ 2 ]

3 голосов
/ 20 июля 2011

вот теория: пространство имен и имя действия НЕ ДОЛЖНЫ соответствовать вашему действию или местоположению файла jsp (хотя вы можете сделать это самостоятельно для удобства, я делаю это: D: D: D).namespace и action name в основном влияют на то, как клиент увидит свой URL.файл действий и файл jsp должны быть указаны в вашем struts.xml

, в вашем случае пользователь увидит URL mainDashboardHome как ... / jsp / mainDashboardHome.action

, так как вы сказалиВы переместили свой jsps в специальную папку, и содержимое вашего тега результата не показывает никакой папки, я думаю, что настройки вашего файла jsp (<result name="success/error">wherever_your_jsp_is.jsp</result>) должны быть изменены

, поэтому, я думаю, вот шаги дляустранение неисправностей: 1. измените пространство имен на "/" (хотя это и не обязательно). я зависит от того, как вы хотите, чтобы URL был) 2. измените расположение jsp внутри тегов результата на то, где вы сохранили файлы jsp

и, как примечание, вам не нужно помещать response.sendRedirect ("mainDashboardHome.action");внутри вашего JSP.вы можете сделать это вместо этого в вашем struts.xml:

<action blablabla>
   <result name="anotherblablabla" type="redirectAction">
        <param name="namespace">/</param>
        <param name="actionName">mainDashboardHome</param>
   </result>
</action>
1 голос
/ 19 июля 2011

Либо измените пространство имен на namespace="/" или позвоните /jsp/(action-name) из браузера

Редактировать: Больше информации на Пространства имен Struts

...