Javascript 从ajax获取对spring的请求
我正在学习ajax和javascript。这是使用spring和ajax添加的2个数字。我收到客户端发送的请求时出现语法错误。请帮帮我 控制器类Javascript 从ajax获取对spring的请求,javascript,ajax,spring,Javascript,Ajax,Spring,我正在学习ajax和javascript。这是使用spring和ajax添加的2个数字。我收到客户端发送的请求时出现语法错误。请帮帮我 控制器类 @Controller public class SumWithAjaxSpringController { @Resource(name="sumWithAjaxService") private SumWithAjaxService sumWithAjaxService; @RequestMapping(value = "ad
@Controller
public class SumWithAjaxSpringController {
@Resource(name="sumWithAjaxService")
private SumWithAjaxService sumWithAjaxService;
@RequestMapping(value = "additionWithAjax", method = RequestMethod.GET)
public String add(@RequestParam(value="value1", required=true) Integer value1,
@RequestParam(value="value2", required=true) Integer value2,) {
Integer sum = springService.add(value1, value2);
return "additionWithAjax";
}
}
@Service("sumWithAjaxService")
@Transactional
public class SumWithAjaxService {
public Integer add(Integer number1, Integer number2) {
return number1+ number2;
}
}
服务等级
@Controller
public class SumWithAjaxSpringController {
@Resource(name="sumWithAjaxService")
private SumWithAjaxService sumWithAjaxService;
@RequestMapping(value = "additionWithAjax", method = RequestMethod.GET)
public String add(@RequestParam(value="value1", required=true) Integer value1,
@RequestParam(value="value2", required=true) Integer value2,) {
Integer sum = springService.add(value1, value2);
return "additionWithAjax";
}
}
@Service("sumWithAjaxService")
@Transactional
public class SumWithAjaxService {
public Integer add(Integer number1, Integer number2) {
return number1+ number2;
}
}
JSP
<script type="text/javascript">
function add()
{
var xmlhttp;
var value1 = document.getElementById("text1").value;
var value2 = document.getElementById("text2").value;
var url = "additionWithAjax";
var parameters = "text1=" + value1 + "&text2=" + value2;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("result").innerHTML=xmlhttp.responseText;
}
};
xmlhttp.open("GET",url+"?"+parameters,true);
xmlhttp.send();
}
</script>
</head>
<body>
Enter 1st number : <input type="text" name="n1" id="text1">
Enter 2nd number : <input type="text" name="n2" id="text2">
<input type="button" id="calculate" value="calculate"
onclick="add()" />
Result :<span id="result" > </span>
</body>
函数add()
{
var-xmlhttp;
var value1=document.getElementById(“text1”).value;
var value2=document.getElementById(“text2”).value;
var url=“additionWithAjax”;
var parameters=“text1=“+value1+”&text2=“+value2;
if(window.XMLHttpRequest)
{
xmlhttp=新的XMLHttpRequest();
}
其他的
{
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“结果”).innerHTML=xmlhttp.responseText;
}
};
open(“GET”,url+“?”+参数,true);
xmlhttp.send();
}
输入第一个数字:
输入第二个数字:
结果:
web.xml
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
春天
org.springframework.web.servlet.DispatcherServlet
1.
春天
/
index.jsp
@缺少响应库
下面的方法需要重新编写
@RequestMapping(value = "additionWithAjax", method = RequestMethod.GET)
public String add(@RequestParam(value="value1", required=true) Integer value1,
@RequestParam(value="value2", required=true) Integer value2,) {
Integer sum = springService.add(value1, value2);
return "additionWithAjax";
}
进入
将控制器方法更改为以下,然后重试
@RequestMapping(value = "additionWithAjax/{value1}/{value2}", method = RequestMethod.GET)
public String add(@PathVariable("value1") Integer value1,
@PathVariable("value2") Integer value2) {
}
从ajax URL发送这些值。在控制器中获取服务实例时,您可以使用@autowired
注释而不是@Resource
@Autowired
@Qualifier("sumWithAjaxService")
private SumWithAjaxService sumWithAjaxService;
根据我在您的请求URL中找到的内容,您需要首先处理控制器的“/SumWithAjaxController”请求映射,如下所示
@Controller
@RequestMapping(value = "/SumWithAjaxController")
public class SumWithAjaxSpringController {
然后必须将剩余部分“/additionWithAjax”添加到方法中
@RequestMapping(value = "/additionWithAjax", method = RequestMethod.GET)
js代码中还有一个错误,就是添加了两个名为“text1”和“text2”的参数。它们将不会被分配给控制器方法的参数名为“value1”和“value2”。
参数名称必须匹配。但我仍然会遇到相同的错误。有没有办法不用@ResponseBody就可以做到这一点。只需调试请求是否到达Spring MVC控制器。我怀疑@RequestMapping(value=“additionWithAjax”,method=RequestMethod.get)中提到的值可能是“/additionWithAjax”我认为在添加“additionWithAjax”部分之前必须有一些URL,但上面说的是错误。我也尝试了所有这些方法。最终的URL叫什么?尝试在控制器请求映射中添加“/”like“/additionWithAjax”。“SumWithAjaxController”映射到哪里?我得到请求的资源不可用。我在Vaibhav处更正了它,仍然相同。我现在已附加web.xml。请检查。