『壹』 javaWeb项目中怎么将jsp页面的数据转换成Json格式交互到后台对应Servlet类中
1、使用javascript将页面的数据直接组织成json格式的字符串,然后将json字符串提交给后台版servlet进行处理。
2、后台java可以直接使权用json类包进行json解析操作。
3、希望对你有帮助。
『贰』 JSP在Struts 2中使用JSON Ajax支持
JSON插件提供了一种名为json的ResultType,一旦为某个Action指定了一个类型为json的Result,则该Result无需映射到任何视图资源。因为JSON插件会负责将Action里的状态信息序列化成JSON格式的数据,并将该数据返回给客户端页面的JavaScript。
简单地说,JSON插件允许我们在JavaScript中异步调用Action,而且Action不再需要使用视图资源来显示该Action里的状态信息,而是由JSON插件负责将Action里的状态信息返回给调用页面——通过这种方式,就可以完成Ajax交互。
Struts2提供了一种可插拔方式来管理插件,安装Struts2的JSON插件与安装普通插件并没有太大的区别,一样只需要将Struts2插件的JAR文件复制到Web应用的WEB-INF/lib路径下即可。
安装JSON插件按如下步骤进行:
(1)登陆
(2)将下载到的jsonplugin-0.7.jar文件复制到Web应用的WEB-INF路径下,即可完成JSON插件的安装。
实现Actio逻辑
假设wo,en输入页面中包含了三个表单域,这三个表单域对于三个请求参数,因此应该使用Action来封装这三个请求参数。三个表单域的name分别为field1、field2和field3。
处理该请求的Action类代码如下:
public class JSONExample
{
//封装请求参数的三个属性
private String field1;
private transient String field2;
private String field3;
//封装处理结果的属性
private int[] ints = {10, 20};
private Map map = new HashMap();
private String customName = "custom";
//三个请求参数对应的setter和getter方法
public String getField1()
{
return field1;
}
public void setField1(String field1)
{
this.field1 = field1;
}
//此处省略了field1和field2两个字段的setter和getter方法
...
//封装处理结果的属性的setter和getter方法
public int[] getInts()
{
return ints;
}
public void setInts(int[] ints)
{
this.ints = ints;
}
public Map getMap()
{
return map;
}
public void setMap(Map map)
{
this.map = map;
}
//使用注释语法来改变该属性序列化后的属性名
@JSON(name="newName")
public String getCustomName()
{
return this.customName;
}
public String execute()
{
map.put("name", "yeeku");
return Action.SUCCESS;
}
}
在上面代码中,宏蔽派使用了JSON注释,注释时指定了name域,name域指定Action属性被序列化成JSON对象的属性名。除此之外,JSON注释还支持如下几个域:
serialize:设置是否序列化该属性
deserialize:设置是否反序列化该属性。
format:蔽贺设置用于格式化输出、解析日期表单域的格式。例如"yyyy-MM-dd'T'HH:mm:ss"。
配置该Action与并丛配置普通Action存在小小的区别,应该为该Action配置类型为json的Result。而这个Result无需配置任何视图资源。
配置该Action的struts.xml文件代码如下:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"">
<struts>
<constant name="struts.i18n.encoding" value="UTF-8"/>
<package name="example" extends="json-default">
<action name="JSONExample" class="lee.JSONExample">
<result type="json"/>
</action>
</package>
</struts>
在上面配置文件中有两个值得注意的地方:
第一个地方是配置struts.i18n.encoding常量时,不再是使用GBK编码,而是UTF-8编码,这是因为Ajax的POST请求都是以UTF-8的方式进行编码的。
第二个地方是配置包时,自己的包继承了json-default包,而不再继承默认的default包,这是因为只有在该包下才有json类型的Result。
『叁』 jsp页面中,如何使用jquery拼接json格式的数据
不知道你想做什么。
jquery是运行在
浏览器
端的一个js
函数库,json被浏览器解析之后就是
一个js
字面量
(或叫做对象)
。你说拼接,是不是把两个
json
的数据变成一个对象?我觉得这完全没必要吧,如果你需要同时获取两个json你可以在
服务器端
直接把这两次请求合并为一个,这样只用一次请求
速度还快一些
。
如果你非要获取两次然后拼接成一个对象也可行。
function
callBack(json){
这里写你处理最终json的
代码
}
$.getJSON("url1",
function(json1)
{//获取第一个json
$.getJSON("url2",
function(json2)
{//
回调函数
中获取第二个json
var
key;
for
(key
in
json2)
{//遍历第二个json对象添加到第一个json中
json1[key]
=
json2[key];
};
callBack(json1);
//处理最终得到的json对象
});
});
『肆』 怎么用jsp生成json格式数据,然后用js又怎样读取其数据
jsp生成:
JSONObject obj = new JSONObject();
obj.put( "name" , "feiniu5566");
obj.put( "age" ,23);
out.print(obj.toString());
js接收:
var tt= http_request.responseText;//ajax对象接受处理页面返回的数据
var jsonobj=eval( '('+tt+ ')' );//将数据封装成专对象
//取值属
alert(jsonobj.name);
alert(jsonobj.age);
『伍』 怎么将jsp页面的数据转换成json格式的数据
用ajax可以转换。
『陆』 jsp页面怎么发送json数据
jsp页面发送json数据是在ajax接口中指定dataType:
举例如下:
$.ajax({
contentType: "application/json",
url: "/WS/vinson.asmx/Logon",
data: "{userName:'" + name.val() + "'}",
type: "POST",
dataType: "json", //这里指定传送的数据类型
success: function (json) {
json = eval("(" + json.d + ")");
if (json.success == "error") {
$("#divLogin").show();
alert(json.msg);
code.val("");
pass.val("");
pass.focus();
UpdateImage();
} else if (json.success == "success") {
$("#imgFace").attr("src", "/gamepic/face" + json.fid + ".gif");
var name = SubString(json.account, 12, "");
$("#dlInfo").html("<span>帐号:" + name + "</span><span>ID:" + json.gid + "</span>").attr("title", json.account);
$("#mOrder").html(json.morder);
$("#loves").html(json.loves);
$("#mPat a").before(json.UserPat+" ");
$("#counts").html(json.counts);
if (parseInt(json.dayCount) > 0)
$("#qd ul").css("background", "url(../images/qian_n.png) 0 0px no-repeat");
else
$("#qd ul").css("background", "url(../images/qian_n.png) 0 -60px no-repeat");
$("#divLogin").hide();
$("#divInfo").show();
}
},
error: function (err, ex) {
alert(err.responseText);
UpdateImage();
}
});
})
『柒』 怎么将jsp页面的数据转换成json格式的数据
使用JSON.stringify()函数直接将数据转换为JSON格式的字符串传输到后台;如果是后台传回前端页面,则可以使用eval()函数将数据转换为JSON格式
『捌』 怎么用jsp生成json格式数据,然后用js又怎样读取其数据
用jsp生成json要经过一下步骤:
1、浏览器请求服务端某个页面
2、服务端页面(jsp/php/asp等)生成页面数据(html/css/js/json等)
3、浏览器显示页面内容,执行页面脚本
jsp生成数据示例如下:
// 例子使用fastjson
List<String> names = new LinkedList<String>(); // 任意Collection都可以
names.add("张三");
names.add("李四");
JSONObject value= new JSONObject();
value.put("names", names); // 这样就放了一个数组了
value.put("id", "123456"); // 放一个字符串
System.out.println(value.toJSONString());//
js解析json数据示例如下:
// 解析json数据
// 如果jsong数据是一个字符串
var myjson=eval("("+myjsonstring+")")
alert(myjson.id)
alert(myjson.names.length)
『玖』 如何将通过JSP获取到的数据库数据在JSP中转换为JSON格式,是要在JSP中转换,因为我要将数据从JSP中返回
JSONObject jb = JSONObject.fromObject(xxxx);
JSONArray json = jb.getJSONArray("xxxx");
int jsonLength = json.size();
for(int i = 0; i < jsonLength; i++){
try{
JSONObject jasonObject = JSONObject.fromObject(json.get(i));
JSONObject jb = JSONObject.fromObject("xxx");
JSONArray json = jb.getJSONArray("xxx"); }
catch(Exception e){
}
}
『拾』 如何在jsp页面中显示json
$("#city").append(json);
这个city是要显来示的位置的id
如果向源 select中添加option的话可以这样(这个data是从后台获得的JSONArray,province是一个JSONObject对应的名字)
var temp = "";
for ( var i in data) {
temp += "<option value='" + data[i].province + "'>";
temp += data[i].province;
temp += "</option>";
}
$("#city").html(temp);