Вы можете получить доступ к View.jsp, потому что он общедоступен. Как правило, все JSP помещаются в / WEB-INF, причина этого в том, что View.jsp не будет иметь смысла, если он не поддерживается действием. Если вы просто идете в View.jsp, как есть, он не выполняется, хотя действие, которое просто попадает в JSP напрямую и пытается его проанализировать, теги, не находящие никаких данных, вероятно, будут терпеть неудачу (теги S2 обычно делают это, не могут найти недвижимость просто сдавайся).
Теперь, когда JSP находится в папке / WEB-INF, единственный способ получить к нему доступ с помощью doEntries (вы можете отключить действие dot , если только вы не фильтруете .action с помощью s2, но если у вас нет веских причин, вы не должны быть). Конечно, не забудьте обновить отображение действий на /WEB-INF/View.jsp
Теперь вы можете создать другое действие, называемое view, чтобы попасть туда, но если все, что он собирается сделать, это то же самое, что и doEntries, то в действительности нет никакого смысла, просто используйте doEntries.
Когда вам надоест писать XML (что является хорошей практикой, но на самом деле не обязательно), добавьте плагин struts2 -ventionstions к вашему пути к классам. После добавления сделайте следующее:
Создайте новый пакет с именем struts2, создайте в нем класс следующим образом:
package struts2;
class HelloWorld extends ActionSupport{
public String greetings = "Hello from HelloWorld Class!";
}
Затем создайте jsp с именем "hello-world.jsp" в / WEB-INF / content
который имеет
<s:property value="greeting"/>
отметьте сейчас, если вы введете "hello-world", где, вероятно, находится index.html, вы увидите небольшое приветственное сообщение ... В большинстве простых случаев, следуя простому соглашению об именовании между классами и JSP, вы можете полностью избежать XML , Если вам не нравится соглашение, вы можете легко переопределить то, что вам не нравится, но если вы добавите плагин соглашений в свой путь к классу, и ваши действия xml и будущие соглашения будут жить в гармонии.
PS: Да, я полагаю, класс HelloWorld должен иметь геттеры и сеттеры, но в таком случае он прекрасно работает и делает пример короче.