0

Struts のバージョンは 2.3.16 です

で、これstruts.xmlを追加しました

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

UserAccountこの URL への一部のリクエストは問題ありませんが、一部のリクエストは 404 であるため、xml とクラスは正しいです。

これは成功した要求です

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

これら 2 つのリクエストに違いが見られないため、この問題が発生した理由がわかりません

の先頭にブレークポイントも追加しましたUserAccountが、プログラムはこのブレークポイントに到達できず、サーバーはこのエラーを表示します

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

この問題を追跡する方法がわかりません。どうすればよいですか?

4

1 に答える 1

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アクション構成からインターセプターを削除するか、オーバーライドしてインターセプター構成パラメーターにメソッドを追加することにより、このアクションを検証から除外することもできますexcludeMethods。その後、この結果は必要ありません。

于 2014-09-25T08:48:47.487 に答える