我一直在尝试使用struts和json在我的jsp中显示json数据。我使用jquery post将数据发送到action类,一旦成功,它应该触发一个回调函数是jquery post.But回调没有被触发。
我无法在此找到缺失的链接。
这是我的代码..
我的struts xml ..
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources" value="ApplicationResources"></constant>
<package name="default" extends="json-default">
<action name="some" class="action.Testing">
<result type="json">
<param name="root">displaying</param>
<param name="noCache">true</param>
</result>
</action>
</package>
</struts>
我的jsp页面如下..
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<SCRIPT type="text/javascript" src="javascript/json.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/jquery.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/jquery.form.js"></SCRIPT>
<script type="text/javascript">
function somecallback(displaying){
var result = displaying.split(",");
var dataintext = result[0];
$('#sub').val(dataintext);
}
function test(){
var input = { "text" : "testing entry data",
"displaying" : "hello"
};
$.post('some.action',input,somecallback,"json");
}
$(function(){
$('#field').click(function(){
test();
return false;
});
</script>
</head>
<body>
<s:form method="post">
hello..
<s:submit id="field" value="click me too!!"></s:submit>
<s:textarea id="sub" name="tes" value="%{text}"></s:textarea>
<s:textarea id="second" name="tester"></s:textarea>
<div id="flag" style="height:100px;width:20px;">sfdsf</div>
<input type="text" id="hi" name="help" value="clicked here!!" />"
</s:form>
</body>
</html>
任何建议和帮助都非常感谢..
谢谢你, hemanth。
答案 0 :(得分:1)
尝试更改您链接脚本的顺序,jquery应该在您喜欢任何使用jquery的文件之前
<SCRIPT type="text/javascript" src="javascript/jquery.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/json.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/jquery.form.js"></SCRIPT>
另外,请勿使用onclick:
$('#field').click(function(){
test();
});
答案 1 :(得分:1)
应该先调用jQuery库。看起来乍一看脚本是乱序的。尝试重新安排脚本并首先放置jquery.js.
答案 2 :(得分:0)
终于解决了这个问题。这些是导致我解决问题的两个变化。
1)正如adam和charles上面提到的那样,jquery.js应该高于任何其他要加载的javascript。
2)我使用的jquery javascript是1.2.3版本,它不支持我想要实现的,所以我下载了最新的,即。版本1.6.2,这实际上支持我想要的。
谢谢。