J 2 EEの中のstruts 2フォームの詳細処理


//struts-tagsには多くのラベルが付いています。
例えば簡単な登録フォームの中にはたくさんの様式がありますが、実際にstrutsの実際の機能を使う必要がない時は使うことを勧めません。

   <s:form  action="user_save">
     <s:token></s:token>
       <s:textfield name="username" label="   "></s:textfield>
       <s:textfield name="pwd" label="  "></s:textfield>
       <s:submit value="  "></s:submit>
     </s:form>
属性設定メニュー=「シンプル」で自分のスタイルをキャンセルできます。
次にModelDrivenで、本体類を直接ページデータの収集対象にするという意味です。アクションでModelDrivenインターフェースを実現すると、実体類オブジェクトの属性に対して便利に値を割り当てることができますが、アクションでは実体類オブジェクトがnewで出てきて、ModelDrivenのget Model方法を書き換えます。戻り値はエンティティ類の対象コードです。

package com.xinzhi.action;
import java.util.List;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.util.ValueStack;
import com.xinzhi.dao.impl.UserDaoImpl;
import com.xinzhi.entity.UserEntity;
public class UserAction extends ActionSupport implements
    ModelDriven<UserEntity> {
  private static final long serialVersionUID = 1L;
  private UserEntity userEntity = new UserEntity();
  UserDaoImpl userDaoImpl = new UserDaoImpl();
  public UserEntity getUserEntity() {
    return userEntity;
  }
  public void setUserEntity(UserEntity userEntity) {
    this.userEntity = userEntity;
  }
  public UserEntity getModel() {
    return userEntity;
  }
}
次に、フォームのデータを返します。アクションでは、エンティティ類のオブジェクトをスタックに押し込んで、ページからスタックの値を取り出します。方法は以下の通りです。

public String view() {
    UserEntity selectAUserEntity = userDaoImpl.selectAUserEntity(userEntity
        .getId());
    ValueStack valueStack = ActionContext.getContext().getValueStack();
    valueStack.pop();
    valueStack.push(selectAUserEntity);
    return "view";
  }
最後にフォームの繰り返しを防止する方法tokenです。フォームに「token」タグがある場合、フォームを提出しながらフォームページとactionで同じID値をランダムに生成し、最初に提出したフォームが受信されたときにこのIDは削除され、繰り返し提出されると対応するID値が見つからなくなり、重複して提出できなくなります。そして無効命令を出すエラーコードは以下の通りです。
フォームコード

 <s:form  action="user_save">
       <s:token></s:token>
       <s:textfield name="username" label="   "></s:textfield>
       <s:textfield name="pwd" label="  "></s:textfield>
       <s:submit value="  "></s:submit>
     </s:form>
その後、struts.xml設定ファイルに対応するブロックを使用して、繰り返し提出する場合、無効なコマンドはどのページコードにジャンプしますか?

 <action name="user_*" class="com.xinzhi.action.UserAction" method="{1}">
      <interceptor-ref name="defaultStack"></interceptor-ref>
      <interceptor-ref name="token">
        <param name="includeMethods">save</param>
      </interceptor-ref>
    </action>
以上述べたのは小编でご绍介したJ 2 EEの中のstruts 2フォームの详细処理です。皆さんに助けてほしいです。もし何かご质问があれば、メッセージをください。小编はすぐにご返事します。ここでも私たちのサイトを応援してくれてありがとうございます。