解决方案 »
- 只买一个域名,怎么把我的网站通过域名访问?
- 请问怎么通过配置Apache访问java项目啊?
- struts中的VO
- 大家给我推荐一本比较好的struts2+spring+hibernate的书籍啊,要有实例
- 一个关于resolveEntity(String publicId,String systemId),systemId的问题
- 30分求 struts1.1包
- Hibernate小白问题,高分求解!2个表多字段连接
- spring + tomcat5.59 + hibernate + JOTM 配置分布式事务的问题.
- uml图解释
- 超级简单的struts问题,可是我不明白(愧)......
- mybatis配置文件中如何获取Map的key
- hibernate,2个线程查询id=1的实体,查出来的2个是同一个内存上还是不同的
$.ajax({
type: "POST",
url:"LoginAction.action",
data:{"id":$("#id").val(),"psw":$("#psw").val()},
dataType:'json',
success: function(data){
alert(data);
}
)
你看看这样
你说的这种方式其实是类似于我那种方法的,只不过你这个更加清晰明了!我感觉是我action里面的问题!不知道action里面如何封装data然后返回?
System.out.println(id+" "+psw);
if(coi.LoginValidation(id, psw)){
System.out.println("yes!");
String data="{\'judge\':1}";
Gson gson=new Gson();
gson.fromJson(data, Gson.class);
System.out.println(data.toString());
}else{
System.out.println("no!");
}
return "success";
}能得到alert("yes");的内容,但是得不到judge对应的值,是封装返回的问题!
同时如果不行,用javascript将字符串转化为json
alert("yes!");
var val= eval(data);
alert(val[judge]);
},"json");你的字符串也转不成数字不能用data[0]取值。
如果你的字符到前台了 ,这眼更就能输出了。
PrintWriter pw = response.getWriter();
pw.print(json);
pw.flush();后台的字符串这样输出,你用ajax 就不用转发了。直接return null ;就行了
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public String execute() throws IOException{
System.out.println(id+" "+psw);
if(coi.LoginValidation(id, psw)){
System.out.println("yes!");
String data="{\'judge\':1}";
Gson gson=new Gson();
gson.fromJson(data, Gson.class);
System.out.println(data.toString());
response.setCharacterEncoding("utf-8");
PrintWriter pw = response.getWriter();
pw.print(data);
pw.flush();
}else{
System.out.println("no!");
}
return null;
}你先这样写 试试 。
gson.fromJson(data, Gson.class)这是将json转成Bean.ajax只能返回字符串。不能返回Bean.
1、你要明白data是什么
2、data是怎么来的
3、后台怎么输出json数据你这里明显是传入编号和密码,后台通过判断之后输出一个json字符串,这个json字符串包含judge字段,才能有judge输出,明白么?
你要是搞不定最好把后台代码贴出来~~~
1、你要明白data是什么
2、data是怎么来的
3、后台怎么输出json数据你这里明显是传入编号和密码,后台通过判断之后输出一个json字符串,这个json字符串包含judge字段,才能有judge输出,明白么?
你要是搞不定最好把后台代码贴出来~~~
你说的这些我都知道啊,而且的话,我上面代码也贴出来了,只是你自己没看吧!我的错误点就是在于action里面将符合json格式的字符串不能传回到前台这个点上面,而不是不清楚json传数据的一个模式!
if (result == null || result.size() == 0)
json("{}");
else
json(new Gson().toJson(result));
} //JOSN转换
protected void json(List<Map<String, Object>> results) throws Exception {
if (!(results.size() > 0)) {
results = null;
}
json(new Gson().toJson(results));
}
protected void json(String json) throws Exception {
if (json == null || json.equals("")) {
json = "[]";
}
response.setContentType("application/json;charset=utf-8");
PrintWriter out = response.getWriter();
if (!(json == null || json.equals("[]")|| json.equals(""))) {
out.print(json);
out.flush();
out.close();
}
}
if (result == null || result.size() == 0)
json("{}");
else
json(new Gson().toJson(result));
} //JOSN转换
protected void json(List<Map<String, Object>> results) throws Exception {
if (!(results.size() > 0)) {
results = null;
}
json(new Gson().toJson(results));
}
protected void json(String json) throws Exception {
if (json == null || json.equals("")) {
json = "[]";
}
response.setContentType("application/json;charset=utf-8");
PrintWriter out = response.getWriter();
if (!(json == null || json.equals("[]")|| json.equals(""))) {
out.print(json);
out.flush();
out.close();
}
} 类似差不多,但是你这属于逐一解析json格式字符串了,所以是培训应该不会比较好,我感觉!
已经弄好了,是关于前台到后台,后台到前台的,有心的话可以下载看看,多多指出意见!