一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - J2EE中的struts2表單細節處理

J2EE中的struts2表單細節處理

2020-11-23 13:09情似雨餘黏地絮 Java教程

這篇文章主要介紹了J2EE中的struts2表單細節處理的相關資料,需要的朋友可以參考下

/struts-tags中自帶了很多標簽

比如一個簡單的登錄表單,其中自帶了很多的樣式,實際上如果你不需要用到struts的實際功能的時候不建議使用

?
1
2
3
4
5
6
<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方法,返回值是你的實體類對象代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)堆棧中,然后在頁面中取出堆棧你要的值,方法如下

?
1
2
3
4
5
6
7
8
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值導致無法重復提交,并且發出無效指令的錯誤代碼如下

表單代碼  

?
1
2
3
4
5
6
<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配置文件中使用對應的攔截器,并指出重復提交時,無效的指令將會跳轉到哪一個頁面代碼如下: 

?
1
2
3
4
5
6
<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表單細節處理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/ShaoXin/p/7068952.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 冰雪奇缘1完整版免费观看 变形金刚第一部 | 擦逼视频 | 日韩手机在线观看 | 国产精品天天影视久久综合网 | 双性人bbww欧美双性 | 激情亚洲天堂 | 国语第一次处破女 | 亚洲天堂影院在线观看 | 97综合 | 5月色婷婷| 性鸥美| 国人精品视频在线观看 | 成人资源影音先锋久久资源网 | 国产精品久久久精品日日 | 国产玖玖在线 | 日本伊人久久 | 饭冈加奈子在线播放观看 | 国产精品色拉拉免费看 | 果冻传媒在线视频观看免费 | 男女肉粗暴进来下面好紧 | 国产视频久久 | 亚洲人成网站在线观看妞妞网 | 扒开大腿狠狠挺进视频 | 日本无卡无吗中文免费 | 99热国产在线 | www四虎影视 | 插得爽| 日本欧美强乱视频在线 | 午夜宅男影院 | 睡男神的这件小事小说在线阅读 | 12345国产精品高清在线 | 91资源站 | 国产91精选学生在线观看 | 999精品视频在线 | 我的妹妹最近有点怪在线观看 | 欧美国产精品久久 | 青青青青青操 | 国产精品国产三级在线专区 | 国产成人久久久精品一区二区三区 | 午夜久| 2022av小四郎的最新地址 |