2014-09-25 4 views
0

Struts версия 2.3.16Почему struts.xml указан правильно, но страница 404?

В struts.xml, я добавил этот

<action name="ajaxuser" class="com.pp.ajax.UserAccount"> 
    <result name="success">/out.jsp</result> 
</action> 

XML-и UserAccount класса являются правильным, потому что некоторые запросы на этот адрес в порядке, но некоторый запрос 404.

Это успешный запрос

Request URL:http://localhost:8080/pp/ajaxuser 
Request Method:POST 
Status Code:200 OK 
Request Headersview source 
Accept:*/* 
Accept-Encoding:gzip,deflate 
Accept-Language:zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4 
Connection:keep-alive 
Content-Length:45 
Content-Type:application/x-www-form-urlencoded; charset=UTF-8 
Cookie:JSESSIONID=B6D15A95251B1477473BC524E7E9E148; Siggraph-Fontresizer=105; targetEncodinghttp://your-site=1; PHPSESSID=k2fi36gbn8979riffibp2mt1f7; _ga=GA1.1.2049659497.1410967472 
Host:localhost:8080 
Origin:http://localhost:8080 
Referer:http://localhost:8080/pp/user-account 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36 
X-Requested-With:XMLHttpRequest 
Form Dataview sourceview URL encoded 
userId:2 
username:b 
password:b 
oper:edit 
id:8 
Response Headersview source 
Content-Length:5 
Content-Type:text/html;charset=ISO-8859-1 
Date:Thu, 25 Sep 2014 07:09:26 GMT 
Server:Apache-Coyote/1.1 

И это неудавшийся запрос

Remote Address:127.0.0.1:8080 
Request URL:http://localhost:8080/pp/ajaxuser 
Request Method:POST 
Status Code:404 Not Found 
Request Headersview source 
Accept:*/* 
Accept-Encoding:gzip,deflate 
Accept-Language:zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4 
Connection:keep-alive 
Content-Length:55 
Content-Type:application/x-www-form-urlencoded; charset=UTF-8 
Cookie:JSESSIONID=B6D15A95251B1477473BC524E7E9E148; Siggraph-Fontresizer=105; targetEncodinghttp://your-site=1; PHPSESSID=k2fi36gbn8979riffibp2mt1f7; _ga=GA1.1.2049659497.1410967472 
Host:localhost:8080 
Origin:http://localhost:8080 
Referer:http://localhost:8080/pp/user-account 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36 
X-Requested-With:XMLHttpRequest 
Form Dataview sourceview URL encoded 
userId:abc 
username:abc 
password:abc 
oper:add 
id:_empty 
Response Headersview source 
Content-Language:en 
Content-Length:1089 
Content-Type:text/html;charset=utf-8 
Date:Thu, 25 Sep 2014 07:10:15 GMT 
Server:Apache-Coyote/1.1 

Я не могу видеть отличаться между этими двумя запроса, так что я не понимаю, почему эта проблема возникла

Я также добавил точку останова на начало UserAccount, но программа не может достичь этой точки останова, и сервер показать эту ошибку

WARNING: Could not find action or result: /pp/ajaxuser 
No result defined for action com.pp.ajax.UserAccount and result input 

Я понятия не имею, как отследить эту проблему, что я могу сделать сейчас?

+0

Я определил действие и результат в struts.xml, и это правильно, но я все равно получаю эту ошибку. –

+2

Нет ** вход ** приводит к вашей конфигурации. –

+0

Прочтите [этот ответ] (http://stackoverflow.com/a/25682007/1654265). –

ответ

1

Вы выполняете запрос POST, и проверка перехватчика может вернуть результат INPUT. Обычно вы можете исправить это, добавив результат INPUT в конфигурацию действия.

<action name="ajaxuser" class="com.pp.ajax.UserAccount"> 
    <result name="success">/out.jsp</result> 
    <result name="input">/out.jsp</result> 
</action> 

вы также можете исключить это действие из проверки путем удаления validation interceptor от конфигурации действия или добавлений методы к параметру перехватчика конфигурации excludeMethods путем переопределения его, то вам не нужен этот результат.