【发布时间】:2014-05-15 01:57:17
【问题描述】:
目前我在 Spring mvc 的遗留项目中,注释没有在它上面工作。
我必须创建一个控制器动作,它将响应带有 JSON 响应的 ajax 调用。
我通过实现Controller 接口创建了我的控制器。
我可以用这个实现一个 jsp 页面,但无法将它用于 ajax 调用。
action-servlet.xml 中的 XML 配置
<bean id="jsonResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order"><value>1</value></property>
</bean>
<bean name="jsonView" class="org.springframework.web.servlet.view.json.JsonView">
<property name="contentType">
<value>text/html</value>
</property>
</bean>
<bean id="myOwnController" class="com.myapp.webapp.action.MyOwnController" />
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<!-- list of inteceptor urls -->
</list>
</property>
<property name="mappings">
<props>
<prop key="/mytest">myOwnController</prop>
<!-- mapping for other controller actions -->
</props>
</property>
</bean>
控制器类
package com.myapp.webapp.action
public class myOwnController implements org.springframework.web.servlet.mvc.Controller
{
@Override
public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception
{
Map<String, Object> model = new HashMap<String, Object>();
model.put("success", "true");
return new ModelAndView("jsonView", model);
}
}
ajax调用js方法(在Prototype.js中)
function myAjaxMethod(){
new Ajax.Request('${pageContext.request.contextPath}/jsonView', {
method:'get',
onSuccess: function(transport) {
var response = transport.responseText || "no response text";
alert("Success! \n\n" + response);
},
onFailure: function() { alert('Something went wrong...'); }
});
}
我也无法理解 ajax 调用中的 url 将如何知道 this 是应该调用的控制器。我是否缺少任何映射?
请帮忙。
【问题讨论】:
标签: ajax json spring spring-mvc