最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Json在Struts中的轉(zhuǎn)換與傳遞方法

 更新時間:2016年11月08日 16:58:31   投稿:jingxian  
下面小編就為大家?guī)硪黄狫son在Struts中的轉(zhuǎn)換與傳遞方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文主要探討普通數(shù)據(jù)如何快速轉(zhuǎn)換為Json數(shù)據(jù),一共討論2種方法:

首相準(zhǔn)備頁面和實(shí)體類:

頁面:

<body>
    <div id="topLoginDiv">
      用戶名:
      <input name="user.name" id="loginName" />
      &nbsp;密碼:
      <input name="user.password" id="loginPassword" />


      <label class="ui-green">
      <input type="button" name="loginButton" value="登錄" onclick="doLogin();" />
      </label>
    </div>
    <div id="demo" ></div>
</body>

實(shí)體類:

package bean;

public class User {

private int id;
private String userName;
private String password;
......省略Get和Set方法

}

方法一:使用JSON轉(zhuǎn)換包進(jìn)行JSON數(shù)據(jù)的轉(zhuǎn)換

第一步,引入相關(guān)相關(guān)包

  

第二步:頁面提交及回調(diào)函數(shù)處理結(jié)果。

<script type="text/javascript">
function doLogin(){
var name = $('#loginName').val();
var password = $('#loginPassword').val();
var data1 ={'user.userName':name,'user.password':password};
$.getJSON('user_login.action',data1,function(data){//此處須用$.getJSON來處理JSON數(shù)據(jù)
if(data.flag){
$('#topLoginDiv').html("");
$('#demo').html("當(dāng)前用戶:"+data.user.userName+"   "+data.msg);
}else{
$('#demo').html(data.msg);
}
});

}
</script>

第三步:Struts2跳轉(zhuǎn)到Action中進(jìn)行JSON的轉(zhuǎn)換《關(guān)鍵步驟》

private User user=new User();

private boolean flag;

private String msg;

......省略Get和Set方法

public String login() throws IOException{

if(user.getUserName().equals("admin")&&user.getPassword().equals("123456")){
msg="登陸成功";
flag=true;
}else{
msg="登錄失敗,用戶名或密碼錯誤!";
flag=false;
}



Map<String,Object> list = new HashMap<String,Object>();//此處的Map不用get和Set方法
list.put("flag", flag);
list.put("msg",msg);
if(flag){
list.put("user",user);
}


ServletActionContext.getResponse().setCharacterEncoding("UTF-8");
ServletActionContext.getResponse().getWriter().print(JSONObject.fromObject(list));
return null;//此處返回值為NULL,不需要再回到ACTION配置中進(jìn)行處理

}

方法二:使用Struts2配置Action進(jìn)行JSON數(shù)據(jù)的轉(zhuǎn)換

第一步:引入包

此種方法只需要在使用Struts2所需包的基礎(chǔ)上引入下面這一個包即可:

第二步:頁面提交及回調(diào)函數(shù)處理結(jié)果。參考方法一中的第二步。

第三步:配置Action

<package name="json_default" namespace="/" extends="json-default">//注意此處的extends配置

    <action name="user_*" class="Action.userAction" method="{1}">
      <result type="json">//此處指明類型
        <!-- 參數(shù)root指定要序列化得根對象 -->
        <!-- 默認(rèn)將序列化當(dāng)前Action中所有有返回值的getter方法的值 -->
        <param name="root">list</param>
        <!-- 參數(shù)includeProperties指定要序列化根對象中的哪些屬性,多個屬性以逗號隔開-->
        <param name="includeProperties">msg,flag,user,user.userName</param>
        <!-- 參數(shù)excludeProperties指定要從根對象中排除的屬性,排除屬性將不被序列化-->
        <param name="excludeProperties">user.password</param>
        <!-- 參數(shù)excludeNullProperties指定是否序列化值為空的屬性-->
        <param name="excludeNullProperties">true</param>
      </result>
    </action>
</package>

第四步:Struts2跳轉(zhuǎn)到Action中進(jìn)行JSON的轉(zhuǎn)換《關(guān)鍵步驟》

private User user=new User();

private boolean flag;

private String msg;

private Map<String,Object> list=null;//需要為MAP準(zhǔn)備get和Set方法

..................省略Get和Set方法



public String login() throws IOException{

if(user.getUserName().equals("admin")&&user.getPassword().equals("123456")){
msg="登陸成功";
flag=true;
}else{
msg="登錄失敗,用戶名或密碼錯誤!";
flag=false;
}


list= new HashMap<String,Object>();
list.put("flag", flag);
list.put("msg",msg);
if(flag){
list.put("user",user);
}

return "success";//返回值為success確保能跳進(jìn)Action配置文件進(jìn)行數(shù)據(jù)轉(zhuǎn)換

以上這篇Json在Struts中的轉(zhuǎn)換與傳遞方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Idea為java程序添加啟動參數(shù)(含:VM?options、Program?arguments、Environment?variable)

    Idea為java程序添加啟動參數(shù)(含:VM?options、Program?arguments、Environme

    設(shè)置啟動參數(shù)的意義就是當(dāng)啟動程序時,程序會優(yōu)先讀取idea的配置參數(shù),這樣就可以不用修改配置文件,下面這篇文章主要給大家介紹了關(guān)于Idea為java程序添加啟動參數(shù)(含:VM?options、Program?arguments、Environment?variable)的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • JAVA中Collections.sort()方法使用詳解

    JAVA中Collections.sort()方法使用詳解

    這篇文章主要給大家介紹了關(guān)于JAVA中Collections.sort()方法使用的相關(guān)資料,Java中Collections.sort()方法是用來對List類型進(jìn)行排序的,文中通過代碼將使用的方法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • Java中Mybatis-Plus使用方式介紹

    Java中Mybatis-Plus使用方式介紹

    Mybatis-Plus提供了多種方式來執(zhí)行SQL,包括使用注解、XML映射文件和?Lambda表達(dá)式等,其中,使用Lambda表達(dá)式是Mybatis-Plus推薦的方式,因?yàn)樗又庇^和類型安全,,需要的朋友可以參考下
    2023-06-06
  • java自定義類加載器代碼示例

    java自定義類加載器代碼示例

    這篇文章主要介紹了java自定義類加載器代碼示例,具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12
  • MyBatis批量插入數(shù)據(jù)的三種方法實(shí)例

    MyBatis批量插入數(shù)據(jù)的三種方法實(shí)例

    由于項(xiàng)目需要生成多條數(shù)據(jù),并保存到數(shù)據(jù)庫當(dāng)中,項(xiàng)目使用了Spring+MyBatis,所以打算使用MyBatis批量插入,應(yīng)該要比循環(huán)插入的效果更好,下面這篇文章主要給大家介紹了關(guān)于MyBatis批量插入數(shù)據(jù)的三種方法,需要的朋友可以參考下
    2021-10-10
  • 基于java實(shí)現(xiàn)停車場管理系統(tǒng)

    基于java實(shí)現(xiàn)停車場管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于java實(shí)現(xiàn)停車場管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Java類初始化和實(shí)例化中的2個“雷區(qū)”

    Java類初始化和實(shí)例化中的2個“雷區(qū)”

    這篇文章主要介紹了Java類初始化和實(shí)例化中的2個“雷區(qū)”,大家要注意,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Springboot?RestTemplate設(shè)置超時時間的簡單方法

    Springboot?RestTemplate設(shè)置超時時間的簡單方法

    學(xué)習(xí)springboot ,RestTemplate的使用場景非常非常多,比如springcloud中的服務(wù)消費(fèi),下面這篇文章主要給大家介紹了關(guān)于Springboot?RestTemplate設(shè)置超時時間的簡單方法,需要的朋友可以參考下
    2022-01-01
  • SpringBoot @FixMethodOrder 如何調(diào)整單元測試順序

    SpringBoot @FixMethodOrder 如何調(diào)整單元測試順序

    這篇文章主要介紹了SpringBoot @FixMethodOrder 調(diào)整單元測試順序方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java Socket編程簡介_動力節(jié)點(diǎn)Java學(xué)院整理

    Java Socket編程簡介_動力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java Socket編程簡介的相關(guān)知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05

最新評論

安福县| 卓资县| 大名县| 宁南县| 岚皋县| 容城县| 左权县| 松溪县| 平湖市| 五台县| 曲沃县| 波密县| 阆中市| 和龙市| 磴口县| 镇安县| 长乐市| 郯城县| 渭源县| 务川| 安乡县| 寿光市| 内乡县| 谢通门县| 谷城县| 施秉县| 景泰县| 宁陵县| 都兰县| 旅游| 元氏县| 邵武市| 凤凰县| 新兴县| 山丹县| 南部县| 丹凤县| 武穴市| 得荣县| 边坝县| 太保市|