1

私はStruts2 Webアプリケーションに取り組んでいます。すべてが順調に進んでいました。すべてのアクションが適切にマップされ、アプリケーションがページに正しくリダイレ​​クトされます。ただし、この特定のモジュール (ファイルのアップロードに関連) に対して同じことを行うと、失敗するだけです! 何が問題なのかわかりません。さまざまな「/」の組み合わせを試しましたが、ページをリダイレクトできません。私は何を間違っていますか?

私のstruts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!--  <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
     -->
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" 
    "http://struts.apache.org/dtds/struts-2.1.dtd">


<struts>
    <constant name="struts.enable.DynamicMethodInvocation"
        value="false" />
    <constant name="struts.devMode" value="false" />
    <constant name="struts.custom.i18n.resources"
        value="ApplicationResources" />

    <package name="default" extends="struts-default" namespace="">
        <action name="login" class="com.proconsulto.action.LoginAction" method="execute">
            <result name="success">/Dashboard.jsp</result>
            <result name="failure">/SignIn.jsp</result>
           </action>

           <action name="signup" class="com.proconsulto.action.UserAction" method="addUser">
            <result name="success">/Dashboard.jsp</result>
            <result name="failure">/SignIn.jsp</result>
           </action>

            <action name="logout" class="com.proconsulto.action.LoginAction" method="logout">
            <result name="success">/SignIn.jsp</result>
            </action>

           <action name="placerequest" class="com.proconsulto.action.PlaceRequestAction" method="placeRequest">
           <result name="success">/Success.jsp</result>
           </action>

    </package>
</struts>

リダイレクト元のフォーム:

<s:form theme="simple" action="placerequest.action" enctype="multipart/form-data" method="post">
            <ul style="list-style-type:none;">
            <li class="field"><p id="qaz">Headline : <br/><s:textfield style="width:550px;align:center;display:inline;" name="headline" cssClass="text input"></s:textfield></li>
            <li class="field"><p id="qaz">Description :<br/> <s:textarea style="width:550px;display:inline;align:center;" name="description" cssClass="textarea input"></s:textarea></li>
            <li class="field"><p id="qaz">File Upload (if any) :<br/> <s:file style="height:auto;width:550px;display:inline;align:center;" name="userImage" cssClass="text input" /></li>
            <div class="medium default btn"><s:submit value="Proceed"/></div>&nbsp;&nbsp;
            <div class="medium default btn"><s:reset value="Reset"/></div>

placerequestマップされないアクションです!

助けてください。

完全なエラー メッセージ:

タイプ ステータス レポート

message コンテキスト パス [/ProConsulto] に関連付けられた名前空間 [/] およびアクション名 [placerequest] にマップされたアクションがありません。

説明 要求されたリソース (コンテキスト パス [/ProConsulto] に関連付けられた名前空間 [/] およびアクション名 [placerequest] にマッピングされたアクションはありません。) は使用できません。

4

1 に答える 1

1

のような名前空間をパッケージに追加する必要がありますnamespace="/"。しかし、これに固執したい場合namespace=""(問題や無人の結果が生じる可能性があります)、次の形式で指定することができます。

<s:form action="placerequest.action" namespace="" ... >

また、テスト目的でのみ、プロジェクトにStruts2 Config Browser プラグインを含めて、アクションがどのようにマップされているかを確認します (左側のメニューでブラウズします)。

ここに画像の説明を入力

本番環境にリリースする前に、忘れずに削除してください ;)

于 2014-04-07T09:08:51.530 に答える