2013-02-08 3 views
0

Я новичок в struts2. Я пробовал небольшое приложение для практики, но я попал в проблему.Struts 2 пример сейчас

Я пытался переправить непосредственно из index.jsp в login.jsp. Я знаю, что могу напрямую переслать login.jsp, но приведенный ниже код также должен быть действительным. Я прилагаю код, который я пытался. Ниже приведен код, из которого я пытался.

index.jsp

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Home</title> 
</head> 
<body> 
     <jsp:forward page="login.action" /> 
</body> 
</html> 

struts.xml

<struts> 
<include file="example.xml"/> 
<!-- Configuration for the default package. --> 
<package name="default" extends="struts-default"> 
    <action name="login"> 
     <result>/login.jsp</result> 
</action> 
</package> 

login.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@taglib prefix="s" uri="/struts-tags" %> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
</head> 
<body> 
    <s:form> 
     <s:textfield name="user" label="User Name" /> 
     <s:password name="passwd" label="Password" /> 
    </s:form> 
</body> 

В web.xml страница index.php задана как страница приветствия. Предположим, что XYZ - это имя контекста, когда я положил /XYZ/login его запись на страницу входа, но когда я положил /XYZ/ в браузер, он дал и ресурс не нашел ошибку.

Когда я использую <META HTTP-EQUIV="Refresh" CONTENT="0;URL=login.action">, он отлично работает.

Я использую tomcat7 в качестве веб-сервера. Может ли кто-нибудь объяснить, почему это происходит.

+0

попытайтесь установить страницу приветствия, как index.jsp в web.xml –

+0

Я уже это сделал. Он приходит к index.jsp и дает ошибку –

+0

try response.sendRedirect («login»); –

ответ

1

Не все контейнеры по умолчанию выполняют FORWARD для не-JSP ресурсов - <jsp:forward/> - сказать контейнер, чтобы сделать это, пожалуйста, добавьте следующее отображение в web.xml:

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 
+0

Это сработало. Не могли бы вы рассказать об этом. Я хочу знать, почему. Я отмечу, что это ответили. –

+0

Не знаю, почему - возможно, некоторые проблемы с производительностью, безопасность - пожалуйста, проверьте документы для данного контейнера или спросите в списке рассылки. –