㈠ struts2中,jsp页面通过ajax访问了action,action如何返回一个json数据给这个jsp页面,
后台:
public class pageAction extends ActionSupport{
private String username;
private String password;
private String cmd;
public String execute(){
String result = "";
String message = "";
//创建流
PrintWriter out = null;
//创建json对象
JSONObject json = new JSONObject();
cmd = ServletActionContext.getRequest().getParameter("cmd");
username = ServletActionContext.getRequest().getParameter("username");
password = ServletActionContext.getRequest().getParameter("password");
//System.out.println("username:"+username+",password:"+password);
if("admin".equals(username) && "admin".equals(password)){
json.put("content", "true");
}else{
json.put("content", "输入的账号或密码有误!");
}
out.write(json.toString());
return SUCCESS;
}
}
前台:
<script type="text/javascript">
function checkAnswer() {
//获得输入的账号和密码的值
var username= document.getElementById("username").value;
var password= document.getElementById("password").value;
dataStr = {
checkname : username,
checkpass : password
};
jQuery
.ajax( {
type : "POST",
url : "ajax/checkAnswer.action?temp=" + Math.random(),
data : dataStr,
dataType : "json",
success : function(root) {
if ("true" == root.content) {
jQuery.messager.alert("操作提示", "登录成功!", "info");
} else {
jQuery.messager.alert("操作提示", root.content, "info");
}
}});
}
</script>
试试吧,大体是这样的格式,可能还会有一些小错误,注意下就好!
还要注意下在Structs里配置时:
<action name="seekcardAction" class="seekcardAction" method="returnResult">
<result type="json" /> //注意返回类型
</action>
㈡ extjs和struts2的结合使用,在action中如何给extjs的form中的回调函数传json值
action里定义private boolean success; 提供get set方法
再在配置文件里
<action name="add" class="action" method="add">
<result type="json">
<param name="includeProperties">success,id</param>//前台可以接收的参数内
</result>
</action>
如果容success为true 就会调用success:function(form, action) {action.result.id//就可以取到后台传到前台的参数值了}
如果success为false就会调用failure:function(form, action) {}
注:extjs的form提交其实也是ajax提交
㈢ struts2怎么返回json数据
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN"
"
<struts>
<packagename=""extends="json-default"namespace="">
<actionname=""class=""method="">
<resulttype="json">
以下是变量名为loginUser对象的某些指定属性
<paramname="includeProperties">
loginUser.id,
loginUser.loginName,
loginUser.name,
loginUser.roleNames
</param>
以下是变量名为loginUser对象的全部属性,多个对象用逗号
<paramname="includeProperties">
loginUser.*,
loginUser1.*
</param>
以下是集合里的某些指定属性
<paramname="includeProperties">
weekScheles[d+].id,
weekScheles[d+].startDate,
weekScheles[d+].endDate,
weekScheles[d+].title,
weekScheles[d+].scheleCount
</param>
</result>
</action>
</package>
</struts>
注意package标签,extends要写成json-default
Struts2处理JSON只需要在xml文件里就可以完成,但是要注意,能够直接作为JSON返回的必须是Action类里的属性,方法中的属性不能使用此方式直接返回
㈣ java 后台接收json数据 我想在struts2 的action里,接收ext传来的json数据 用什么接收啊
只要从parameter里接收string类型就可以,然后将json字符串转换成你需要的东西
㈤ struts中如何返回json格式的数据
哥们你都没理解!
首先,你可以写个公共的方法用来输出json的,所以就不用每次都写!
protected PrintWriter out() {
response.setCharacterEncoding("UTF-8");
PrintWriter writer = null;
try {
writer = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
return writer;
}
然后 out()..print("这里放你的json字符串");
我一般是用json-lib包,这包转化;
如 我现在是转化的集合 JSONArray jsonArray = JSONUtil.getJSONArray(searchList);
然后我就把这个输出去,out().print(jsonArray.toString());,亲就可以去前台接收了
Struts2返回的方法是 return null;
如:
public String getDutyUserShow() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
List<EcsDutyInfoDTO> searchList = ecsDutyService
.findDutyUserToday(format.format(new Date()));
if (searchList != null) {
JSONArray jsonArray = JSONUtil.getJSONArray(searchList);
System.out.println(jsonArray.toString());
out()
.print(
"{success:true,data:" + "" + jsonArray.toString()
+ "}");
} else {
out().print("{success:true,data:{[]}}");
}
return null;
}
㈥ struts2 怎么接收客户端的json格式数据
Ajax
json格式:
{key:value,key1:value1....}
如果返回的数据包含多个对象:
[{key1:value1...},{key2:value2....}]
㈦ 用extjs4做tree,结合struts,spring 查询数据库后返回json数据,并显示数据树,应该怎么做
很简单···你struts2是哪个版本的,高于2.16的,有一个struts2-json-plugin-2.1.8.jar的插件包,放入lib后;你要做现实菜单就必须在后台创建一个tree的class,内容是这样的
/**树节点ID*/
private String id;
/**树节点名称*/
private String text;
/**图标*/
private String cls;
/**是否叶子*/
private boolean leaf;
/**链接*/
private String href;
/**链接指向*/
private String hrefTarget;
/**是否展开*/
private boolean expandable;
/**描述信息*/
private String description;
然后将数据中的数据存入这个类的对象,再把得到的对象加入到一个java.util.List treeList中,然后在action里面将treeList转换成json,方法是这样的
JSONArray jsonArray = JSONArray.fromObject(treeList);
getResponse().setCharacterEncoding("utf-8");
getResponse().getWriter().println(jsonArray.toString());
,可能说的有点马虎,有不理解的可以再追问。