Json在Struts中的轉(zhuǎn)換與傳遞方法
本文主要探討普通數(shù)據(jù)如何快速轉(zhuǎn)換為Json數(shù)據(jù),一共討論2種方法:
首相準備頁面和實體類:
頁面:
<body> <div id="topLoginDiv"> 用戶名: <input name="user.name" id="loginName" /> 密碼: <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>
實體類:
package bean;
public class User {
private int id;
private String userName;
private String password;
......省略Get和Set方法
}
方法一:使用JSON轉(zhuǎ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("當前用戶:"+data.user.userName+" "+data.msg);
}else{
$('#demo').html(data.msg);
}
});
}
</script>
第三步:Struts2跳轉(zhuǎn)到Action中進行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配置中進行處理
}
方法二:使用Struts2配置Action進行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指定要序列化得根對象 -->
<!-- 默認將序列化當前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中進行JSON的轉(zhuǎn)換《關(guān)鍵步驟》
private User user=new User();
private boolean flag;
private String msg;
private Map<String,Object> list=null;//需要為MAP準備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確保能跳進Action配置文件進行數(shù)據(jù)轉(zhuǎn)換
以上這篇Json在Struts中的轉(zhuǎn)換與傳遞方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java圖片滑動驗證(登錄驗證)原理與實現(xiàn)方法詳解
這篇文章主要介紹了java圖片滑動驗證(登錄驗證)原理與實現(xiàn)方法,結(jié)合實例形式詳細分析了java圖片滑動登錄驗證的相關(guān)原理、實現(xiàn)方法與操作技巧,需要的朋友可以參考下2019-09-09
淺談Spring與SpringMVC父子容器的關(guān)系與初始化
這篇文章主要介紹了淺談Spring與SpringMVC父子容器的關(guān)系與初始化,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Java從ftp服務(wù)器上傳與下載文件的實現(xiàn)
這篇文章主要給大家介紹了關(guān)于Java從ftp服務(wù)器上傳與下載文件的實現(xiàn)方法,最近項目中需要實現(xiàn)將文件先存放到ftp上,需要的時候再從ftp上下載,做的過程中碰到了問題,所以這里總結(jié)下,需要的朋友可以參考下2023-08-08
mybatis mybatis-plus-generator+clickhouse自動生成代碼案例詳解
這篇文章主要介紹了mybatis mybatis-plus-generator+clickhouse自動生成代碼案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08

