私はストラットが初めてで、それを学んでいます。私の質問は、Struts がリクエスト パラメータをアクション インスタンス変数にマップする方法です。たとえば、ユーザー名とパスワードを受け取るログインフォームが 1 つあります。今度は、リクエストを LoginAction に送信します。このアクション クラスがユーザー名インスタンス variabel でユーザー名を取得し、パスワード変数でパスワードを取得する方法。サーブレットでは、request.getParameter()
メソッドを使用して特定の変数に値を割り当てます。
3 に答える
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
、インターセプターによって自動的に設定されます。
Struts がパラメーターをマップします。フレームワークを使用すると時間と労力が節約される理由の 1 つは、request
.
username
Struts は、 を呼び出すことによって、リクエスト パラメータをusername
アクション クラスのメンバーに自動的にマップしますsetUsername
。
Struts チュートリアルも参照してください
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
}
}