亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

J2EE中的struts2表單細節處理

發布時間:2020-10-16 20:08:15 來源:腳本之家 閱讀:143 作者:情似雨餘黏地絮 欄目:編程語言

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

你可以通過設置屬性 theme="simple"來取消他自帶的樣式

其次是ModelDriven,意思是直接把實體類當成頁面數據的收集對象。在Action實現ModelDriven接口,可以很方便的對實體類對象的屬性賦值,不過在Action中實體類對象要new出來并且重寫ModelDriven的getModel方法,返回值是你的實體類對象代碼如下:

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;
  }
}

然后是表單的數據回顯,在Action當中把你的實體類對象壓入(ValueStack)堆棧中,然后在頁面中取出堆棧你要的值,方法如下

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>

以上所述是小編給大家介紹的J2EE中的struts2表單細節處理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

徐汇区| 永嘉县| 岳池县| 渭源县| 乃东县| 涪陵区| 鄂尔多斯市| 天镇县| 淳化县| 临江市| 漠河县| 确山县| 马尔康县| 英德市| 呼和浩特市| 鹰潭市| 凤山县| 沭阳县| 台州市| 湖北省| 澄江县| 谢通门县| 翼城县| 松溪县| 谷城县| 田阳县| 永定县| 梅河口市| 安义县| 仁化县| 郸城县| 清流县| 桦甸市| 翁牛特旗| 滦南县| 大兴区| 凤翔县| 霍邱县| 金坛市| 鄂托克旗| 沅江市|