1

私はストラットが初めてで、それを学んでいます。私の質問は、Struts がリクエスト パラメータをアクション インスタンス変数にマップする方法です。たとえば、ユーザー名とパスワードを受け取るログインフォームが 1 つあります。今度は、リクエストを LoginAction に送信します。このアクション クラスがユーザー名インスタンス variabel でユーザー名を取得し、パスワード変数でパスワードを取得する方法。サーブレットでは、request.getParameter()メソッドを使用して特定の変数に値を割り当てます。

4

3 に答える 3

2

struts2 では を使用Interceptorします。この場合、struts2 はインターセプターでパラメーターを設定しparamます。インターセプター スタックを構成するだけです (または、default-stack を使用するだけです)。ここにInterceptorへのリンクがあります。struts2 を初めて使用する場合は、デフォルトの構成を使用して感じてみてください。

例:

<s:form action="my-action">
  <s:textfield name="myField"/>
  <s:submit/>
</s:form>

アクション クラス:

public class MyActionClass extends ActionSupport{
  private String myField; // getter and setter
  public String execute() throws Exception{
    return "success";
  }
}

構成:

<package name="default" extends="struts-default">
  <action name="my-action" class="MyActionClass">
    <result>success.jsp</result>
  </action>
</package>

この場合myField、インターセプターによって自動的に設定されます。

于 2012-09-13T07:39:20.037 に答える
1

Struts がパラメーターをマップします。フレームワークを使用すると時間と労力が節約される理由の 1 つは、request.

usernameStruts は、 を呼び出すことによって、リクエスト パラメータをusernameアクション クラスのメンバーに自動的にマップしますsetUsername

Struts チュートリアルも参照してください

于 2012-09-13T07:36:39.110 に答える
1

Struts2 は一連のインターセプターを使用して面倒な作業を行います。これは、アクションのメソッドの実行時に、操作に必要なすべてのデータを取得することを意味します。

JSP からアクション クラスにデータを転送するために、Struts2 はインターセプター名parameters-interceptorを使用します。JSP フィールドの名前と同じ名前でアクション クラスのプロパティを作成する必要があるだけで、S2 はデータを変換してフィールドに入力します。あなた。

したがって、JSPに名前が言う2つのフィールドがuserNameありpassword、アクションクラスでこれらをgetterとsetterのように定義する必要がある場合

public class MyAction extends ActionSupport{
  private String userName;
  private String password
  //getter ans setter

 public String execute() throws Exception{
  // do what yoou want
 }


}
于 2012-09-13T07:36:59.067 に答える