亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

struts2中類型轉換實例代碼

2024-07-13 10:13:16
字體:
來源:轉載
供稿:網友

類型轉換

        所有的頁面與控制器傳遞的數據都是String類型,在對其進行處理時可能會用到各種的數據類型,程序無法自動完成數據類型的轉換,這就需要我們在代碼中進行手手動操作,這個過程就稱為類型轉換。

內置類型轉換器

     在Web應用程序中,用戶在視圖層輸入的數據都是字符串,業務控制層在處理這些數據時,就必須把從視圖層傳遞過來的字符串進行類型轉換。Struts2提供了簡單易用的數據類型轉換機制,struts2提供的類型轉換如下:

       1)String:將int、long、double、boolean、String類型的數組對象轉換為字符串
       2)boolean/Boolean:在字符串和布爾值之間進行轉換
       3)char/Character:在字符串和字符之間進行轉換
       4)int/Integer,float/Float、long/Long、double/Double:在字符串和數值類型的數據之間進行轉換
       5)Date:在字符串和日期類之間進行轉換。對于日期類型,采用SHORT格式來處理輸入和輸出,使用當前請求關聯的Locale來確定日期格式
      6)數組類型(Array):由于數組元素本身就有類型,struts2使用元素類型對應的類型轉換器,將字符串轉換為數組元素的類型,然后再設置到新的數組中
      7)Collection、List、Set:struts2會將用戶提交的字符串數據使用request對象的getparameterValues(string str)方法,將返回的字符串數據轉換成集合類型

OGNL表達式

       Struts2框架支持OGNL表達式,通過OGNL表達式可以將用戶請求轉換為復合類型。

使用類型轉換注解

Struts2提供了一些類型轉換注解來配置轉換器,使得能夠代替ClassName-conversion.properties文件,其中包括以下注解:

       1)TypeConversion注解。該注解應用于屬性和方法級別。
       2)Conversion注解。Conversion注解讓類型轉換應用到類型級別,即可以應用到類、接口或枚舉聲明。該注解只有一個參數conversions。
       3)Element注解。Element注解用于指定Collection或Map中的元素類型,該注解只能用于字段或方法級別。
       4)Key注解。Key注解用于指定Map中的Key的類型,該注解只能用于字段或方法級別。
       5)KeyProperty注解。Keyproperty注解指定用于索引集合元素中的屬性名,該注解只適用于字段或方法級別
       6)CreatelfNull注解。CreateifNull注解指定在引用的集合元素為null時,是否讓框架重新創建該集合元素。該注解只適用于字段或方法級別

一個簡單的添加商品信息的實例:
在配置好Struts2環境后,
  商品類:

package com.mxl.entity; public class Product {     private String name;//商品名稱     private double price;//商品價格     private int num;//入庫數量     private String content;//商品描述   public String getName() {     return name;   }   public void setName(String name) {     this.name = name;   }   public double getPrice() {     return price;   }   public void setPrice(double price) {     this.price = price;   }   public int getNum() {     return num;   }   public void setNum(int num) {     this.num = num;   }   public String getContent() {     return content;   }   public void setContent(String content) {     this.content = content;   } } 

Action:

package com.mxl.actions; import com.mxl.entity.Product; import com.opensymphony.xwork2.ActionSupport; public class ProductAction extends ActionSupport{     private Product product;     public Product getProduct() {       return product;     }     public void setProduct(Product product) {       this.product = product;     }     @Override     public String execute() throws Exception {     return SUCCESS;     } } 

struts.xml中的配置:

</action>    <action name="pro" class="com.mxl.actions.ProductAction">     <result>/pro_success.jsp</result>    </action> 

添加成功頁面:
<%@ taglib prefix="s" uri="/struts-tags" %>

商品名稱:<s:property value="product.name"/><br/><br/>  商品價格:<s:property value="product.price"/><br/><br/>  入庫數量:<s:property value="product.num"/><br/><br/>  商品描述:<s:property value="product.content"/> 

自定義類型轉換器實例:

package com.mxl.converter; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; import com.mxl.entity.Product; public class ProductConverter extends StrutsTypeConverter{   @Override   public Object convertFromString(Map context, String[] values, Class toClass) {     Product pro = new Product();//實例化該類     String[] proValues = values[0].split("/");//將傳遞過來的數組中的第一個元素以“/”分隔并組成新的數組     pro.setName(proValues[0]);//將新數組中的第一個元素賦值給product類中name屬性     pro.setPrice(doubleValue(proValues[1]));//將新數組中的第二個元素賦值給product類中price屬性     pro.setNum(Integer.parseInt(proValues[2]));//將新數組中的第三個元素賦值給product類中num屬性     pro.setContent(proValues[3]);//將新數組中的第4個元素賦值給product類中content屬性     return pro;   }   @Override   public String convertToString(Map context, Object obj) {      Product pro = (Product)obj;      return "";   } } 

商品類使用的是上邊的那個類,Action,

package com.mxl.actions; import com.mxl.entity.Product; import com.opensymphony.xwork2.ActionSupport; public class ProConverterAction extends ActionSupport{     private Product product1;     private Product product2;   public Product getProduct1() {     return product1;   }   public void setProduct1(Product product1) {     this.product1 = product1;   }   public Product getProduct2() {     return product2;   }   public void setProduct2(Product product2) {     this.product2 = product2;   }   @Override   public String execute() throws Exception {     return SUCCESS;   } } 

配置:

<action name="proConverter" class="com.mxl.actions.ProConverterAction">     <result>/pro_list.jsp</result>  </action> 

添加一個全局類型轉換器:

xwork-conversion.properties,
com.mxl.entity.Product=com.mxl.converter.ProductConverter

添加界面:

<font style="font-size:12px; color:red">在文本框中依次輸入商品的名稱、價格入庫數量和描述之間使用“/”分隔</font>  <s:form action="proConverter.action" method="post" cssStyle="margin-top:0px;">    <s:textfield name="product1" label="商品1" size="50"/>    <s:textfield name="product2" label="商品2" size="50"/>    <s:submit value="確認入庫" align="left"/>  </s:form> 

添加成功后的跳轉界面:

<ul id="heng" class="addPro">     <li style="font-weight:bold;">商品名稱</li>     <li style="font-weight:bold;">商品價格</li>     <li style="font-weight:bold;">商品數量</li>     <li style="font-weight:bold;">商品描述</li>   </ul>   <ul id="heng" class="addPro">     <li><s:property value="product1.name"/></li>     <li><s:property value="product1.price"/></li>     <li><s:property value="product1.num"/></li>     <li><s:property value="product1.content"/></li>   </ul>   <ul id="heng" class="addPro">     <li><s:property value="product2.name"/></li>     <li><s:property value="product2.price"/></li>     <li><s:property value="product2.num"/></li>     <li><s:property value="product2.content"/></li>   </ul> 

復合類型轉換異常處理實例:

User類,

package com.mxl.entity; import java.util.Date; public class User {     private String username;//用戶名     private String password;//密碼     private String realname;//真實姓名     private int age;//年齡     private Date birthday;//生日     private String address;//家庭住址   public String getUsername() {     return username;   }   public void setUsername(String username) {     this.username = username;   }   public String getPassword() {     return password;   }   public void setPassword(String password) {     this.password = password;   }   public String getRealname() {     return realname;   }   public void setRealname(String realname) {     this.realname = realname;   }   public int getAge() {     return age;   }   public void setAge(int age) {     this.age = age;   }   public Date getBirthday() {     return birthday;   }   public void setBirthday(Date birthday) {     this.birthday = birthday;   }   public String getAddress() {     return address;   }   public void setAddress(String address) {     this.address = address;   } } 

配置:

<action name="userException" class="com.mxl.actions.UserExceptionAction">    <result>/user_success.jsp</result>    <result name="input">/user_regist.jsp</result>   </action> 

添加局部資源文件:
User-ExceptionAction.properties,

內容:

invalid.fieldvalue.user.age=會員年齡必須為整數 invalid.fieldvalue.user.birthday=會員出生日期必須為日期格式 

注冊頁面Z:

[html] view plain copy print?<s:form action="userException.action" method="post">    <s:textfield name="user.username" label="用戶名" size="15"/>    <s:password name="user.password" label="密碼" size="15"/>    <s:textfield name="user.realname" label="姓名" size="15"/>    <s:textfield name="user.age" label="年齡" size="15"/>    <s:textfield name="user.birthday" label="出生日期" size="15"/>    <s:textfield name="user.address" label="家庭住址" size="15"/>    <s:submit type="button" value="提交"/>   </s:form> 

跳轉界面:

用戶名:<s:property value="user.username"/><br/><br/>   密碼:<s:property value="user.password"/><br/><br/>   真實姓名:<s:property value="user.realname"/><br/><br/>   年齡:<s:property value="user.age"/><br/><br/>   出生日期:<s:property value="user.birthday"/><br/><br/>   家庭住址:<s:property value="user.address"/><br/><br/> 

總結

以上就是本文關于struts2中類型轉換實例代碼的全部內容,希望對大家有所幫助。如有不足之處,歡迎留言指出。下面推薦幾本相關書籍下載,供大家學習參考。也希望朋友們對本站多多支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久伊人精品一区二区三区| 日韩av在线导航| 日本高清视频精品| 久久九九有精品国产23| 69视频在线免费观看| 国产视频久久久久久久| 日韩中文理论片| 国产成人精品最新| 这里只有精品视频在线| 97香蕉超级碰碰久久免费软件| 国产精品亚洲美女av网站| 国产欧美精品在线| 在线视频欧美日韩| 国产精品手机播放| 国产精品成人av在线| 日本午夜精品理论片a级appf发布| 国产午夜精品全部视频播放| 一区二区三区四区在线观看视频| 欧美激情三级免费| 国产精品久久久久久久久久尿| 亚洲在线一区二区| 国产成人av网| 亚洲高清一二三区| 日韩美女激情视频| 国产成人高潮免费观看精品| 91po在线观看91精品国产性色| 亚洲护士老师的毛茸茸最新章节| 国产午夜精品视频| 久久艳片www.17c.com| 成人a视频在线观看| 久久频这里精品99香蕉| 久久久成人精品视频| 日韩免费视频在线观看| 黄色91在线观看| 日韩一区在线视频| 国产91成人video| 国产精品视频久| 26uuu日韩精品一区二区| 国产日本欧美一区二区三区在线| 97人人模人人爽人人喊中文字| 日本韩国欧美精品大片卡二| 国产精品久久久av| 欧美性xxxxxx| 日韩风俗一区 二区| 一本一本久久a久久精品牛牛影视| 日韩午夜在线视频| 国产精品视频白浆免费视频| 亚洲理论电影网| 97香蕉超级碰碰久久免费软件| 韩国欧美亚洲国产| 国产欧美日韩免费看aⅴ视频| 国产ts人妖一区二区三区| 国产精品美女免费| 九九久久综合网站| 中文字幕日韩高清| 国产精品美女久久久免费| 亚洲va欧美va国产综合久久| 精品国产一区二区在线| 亚洲成人免费在线视频| 亚洲色图欧美制服丝袜另类第一页| 日韩激情av在线免费观看| 精品视频中文字幕| 超碰精品一区二区三区乱码| 亚洲最大在线视频| 不用播放器成人网| 久久99精品久久久久久琪琪| 成人免费网站在线看| 91亚洲精品在线观看| 欧美孕妇性xx| 亚洲一区二区久久久久久| 欧美多人乱p欧美4p久久| 黑人巨大精品欧美一区二区一视频| 国产精品www色诱视频| 777国产偷窥盗摄精品视频| 91精品久久久久久久久久入口| 日韩的一区二区| 2020欧美日韩在线视频| 亚洲欧美www| 69av在线视频| 亚洲午夜av电影| 中文字幕亚洲二区| 超在线视频97| 成人免费午夜电影| 欧美乱人伦中文字幕在线| 日韩视频在线免费| 欧美风情在线观看| 欧美日韩激情视频| 日韩av有码在线| 2019中文字幕全在线观看| 日本aⅴ大伊香蕉精品视频| 亚洲性av网站| 国产精品黄页免费高清在线观看| 久久精品99国产精品酒店日本| 最近更新的2019中文字幕| 欧洲亚洲免费视频| 91精品免费看| 日本高清视频精品| 久久久精品一区二区三区| 51视频国产精品一区二区| 国产精品自产拍高潮在线观看| 日韩av电影手机在线观看| 国产主播欧美精品| 不卡av在线播放| 久久青草福利网站| 国产成人精品久久亚洲高清不卡| 亚洲国产日韩一区| 另类美女黄大片| 欧美日韩一区二区三区在线免费观看| 亚洲网站在线观看| 亚洲视频在线观看网站| 亚洲网站在线看| 中日韩美女免费视频网站在线观看| 亚洲美女av黄| 亚洲欧美另类自拍| 国产91对白在线播放| 久久亚洲春色中文字幕| 国产精品成熟老女人| 国内精品一区二区三区| 国产视频精品久久久| 亚洲天堂网在线观看| 国产丝袜一区二区三区免费视频| 91国产视频在线播放| 91精品视频在线看| 欧美性xxxx在线播放| 欧美色另类天堂2015| 日韩电影中文字幕av| 亚洲qvod图片区电影| 青青久久av北条麻妃海外网| 亚洲午夜色婷婷在线| 亚洲天堂成人在线视频| 久久精品一区中文字幕| 日韩免费av片在线观看| 国产精品福利久久久| 国产精品日韩欧美综合| 国产精品www网站| 中文字幕日韩av电影| 欧美伊久线香蕉线新在线| 日韩在线一区二区三区免费视频| 国产精品福利无圣光在线一区| 亚洲精品黄网在线观看| 粉嫩av一区二区三区免费野| 亚洲韩国青草视频| 日韩亚洲综合在线| 亚洲欧美日韩一区在线| 色老头一区二区三区| 97婷婷大伊香蕉精品视频| 欧美激情国内偷拍| 懂色aⅴ精品一区二区三区蜜月| 国产精品久久网| 国产亚洲精品久久久久久牛牛| 精品国产乱码久久久久酒店| 亚洲伦理中文字幕| 精品国产福利在线| 欧美在线视频网| 色偷偷888欧美精品久久久| 欧美视频裸体精品| 亚洲综合日韩中文字幕v在线| 日韩精品一区二区视频| 久久精品电影一区二区| 亚洲天堂av在线免费| 亚洲一区二区久久久久久久| 国产精品夜色7777狼人| 亚洲精品国产suv| 91av视频导航|