Есть несколько проблем.
<package name="default" namespace="/jsp" extends="struts-default">
1) Я бы рекомендовал против с пространством имен "jsp", это не имеет никакого смысла. Пространства имен должны быть чем-то значимым для приложения и / или пользователя.
<action name="Mergexmlaction" class="com.hm.merge.mergeaction.Mergexmlaction">
2) Не называйте действие "action", либо будет расширение .action
, либо расширение вообще не будет. В любом случае, нет причины дублировать «действие» в первом случае, и нет причины использовать «действие», если нет расширения. Просто "mergexml", "mergeXml" и т. Д.
<result name="success" >/jsp/Result.jsp</result>
3) Я рекомендую размещать страницы JSP под WEB-INF
, чтобы избежать прямого доступа клиента.
<interceptor-ref name="fileUpload">
4) После того, как вы объявите любые перехватчики, вы должны объявить все перехватчики. В этом действии работает только один перехватчик. Это возможно это нормально, но это почти никогда не правильно.
<welcome-file>jsp/Browse_multiplexmlfiles.jsp</welcome-file>
5) И это главная проблема, в зависимости от того, как вы получаете доступ к приложению. Вы показываете файл приветствия как страницу JSP, которая предположительно использует теги S2. Это не сработает: теги зависят от того, являются ли они полным запросом S2, стеком значений и т. Д.
Весь доступ к приложению S2 должен осуществляться через действие S2, , а не JSP. Если вы посмотрите на визуализированный HTML-код для JSP с прямым доступом, вы не увидите ни пространства имен, ни расширения действия.