1

私は Struts 2 フレームワークを初めて使用します。送信ボタンをクリックしたときに、ある名前空間から別の名前空間に変更する際に問題があり、このエラーが発生します。

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">

<struts>

<package name="module-login" namespace="/login" extends="struts-default">

    <action name="verifier" class="presentation.LoginAction" method="verifierLogin">
        <result name="model.Client">/vuesJSP/client/client.jsp</result>
        <result name="model.Administrateur">/vuesJSP/admin/ajouterClient.jsp</result>
        <result name="error">/vuesJSP/login/login.jsp</result>
        <result name="input">/vuesJSP/login/login.jsp</result>
    </action>

</package> 

<package name="module-Admin" namespace="/admin" extends="struts-default">

    <action name="ajouter" class="presentation.AdminAction" method="ajouterClient">
    <result name="success">/vuesJSP/admin/ajouterClient.jsp</result>
    <result name="error">/vuesJSP/admin/ajouterClient.jsp</result>
    <result name="input">/vuesJSP/admin/ajouterClient.jsp</result>
    </action>

    <action name="modifier" class="presentation.AdminAction" method="modifierClient">
    </action>

    <action name="supprimer" class="presentation.AdminAction" method="supprimerClient">
    </action>

    <action name="lister" class="presentation.AdminAction" method="listerClients">
    </action>

</package>

フォーム.jsp

<s:form method="post">

<s:textfield name="nom" label="Nom"></s:textfield>
<s:textfield name="prenom" label="prenom"></s:textfield>
<s:textfield name="cin" label="cin"></s:textfield>
<s:textfield name="login" label="login"></s:textfield>
<s:textfield name="password" label="password"></s:textfield>

<s:submit value="Ajouter Client" action="admin/ajouter"></s:submit>
<s:submit value="Lister les clients" action="admin/lister"></s:submit>

</s:form>

「ajouter client」ボタンをクリックしたときの実際のエラー

Error HTTP 404 - There is no Action mapped for namespace /login and action name admin/ajouter.

「ajouter client」ボタンクリック時のURLを「http://localhost:8080/GestionCommandes/login/verifier.action」から「http://localhost:8080/GestionCommandes/admin/ajouter.action」に変更したい

それを達成する方法はありますか?

4

1 に答える 1

0

struts フォーム タグではnamespace、andaction属性を使用する必要があります。で構成されていない限り、アクション名にスラッシュを使用しないでくださいstruts.xml

<s:form namespace="/admin" action="ajouter" method="post">

  <s:textfield name="nom" label="Nom"></s:textfield>
  <s:textfield name="prenom" label="prenom"></s:textfield>
  <s:textfield name="cin" label="cin"></s:textfield>
  <s:textfield name="login" label="login"></s:textfield>
  <s:textfield name="password" label="password"></s:textfield>

  <s:submit value="Ajouter Client"></s:submit>
  <s:submit value="Lister les clients" action="lister"></s:submit>
</s:form>

actionstruts送信タグで属性を使用するには、アクション名を持つパラメーターのアクション プレフィックスを有効にする必要があります。詳細な説明については、この回答を参照してください。

于 2017-01-04T14:20:42.967 に答える