|
|
最后更新时间:2007-07-30 关键字: jquery json springmvc controller
1、在spring配置文件中加入xmlViewResolver
xml 代码
-
- <bean id="xmlViewResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
- <property name="order" value="1"/>
- <property name="location" value="/WEB-INF/ajax-views.xml"/>
- </bean>
2、增加一个spring配置文件:ajax-views.xml
xml 代码
- <bean name="jsonView" class="com.xx.util.AjaxJsonView">
- <property name="contentType">
- <value>text/xml;charset=utf-8</value>
- </property>
- </bean>
3、AjaxJsonView继承AbstractView,并实现renderMergedOutputModel接口
java 代码
- response.setContentType("text/xml; charset=UTF-8");
-
- response.setHeader("Cache-Control",
- "no-store, max-age=0, no-cache, must-revalidate");
-
-
- response.addHeader("Cache-Control", "post-check=0, pre-check=0");
-
-
- response.setHeader("Pragma", "no-cache");
- JSONArray jsonArray = (JSONArray)map.get("ajax_json");
- response.getWriter().write(jsonArray.toString());
4、在controller中增加属性String jsonView,用来区分不同的view,并增加被Ajax调用的方法
java 代码
- public ModelAndView isEmptyOfCategory(HttpServletRequest request,
- HttpServletResponse response) throws Exception{
-
- boolean isAjax = RequestUtils.getRequiredBooleanParameter(request, "ajax");
-
- jsonObject.putOpt("categoryId", category_id);
- jsonObject.putOpt("categoryName", category.getName());
- isEmpty = false;
- jsonObject.putOpt("isEmpty", isEmpty);
- String view = null;
- if (isAjax) view = this.getJsonView();
- return new ModelAndView(view, "ajax_json", jsonObject);
- }
5、在jsp页面中实现ajax get方法
js 代码
- $.get('controller?method=isEmptyOfCategory',{id: id, ajax: 'true'},function(response) {
- try {
- var json = eval(response);
- for (var i = 0; i < json.length; i++) {
- alert(json[i].isEmpty);
- }
- } catch(e) {
- alert("Error in JSON response:"+e);
- }
- });
注:需要引入jquery.js,json for java和spring framework
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
| 返回顶楼 |
|
|
- zhouzhao21
- 等级: 初级会员

- 性别:

- 文章: 32
- 积分: 0
- 来自: 上海

|
呵,比我的做法好多了.我直接定义了一个新的返回的 ModelAndView .然后在解析时进行了拦截.
|
| 返回顶楼 |
|
|
- liuzongan
- 等级: 初级会员

- 性别:

- 文章: 92
- 积分: 10
- 来自: 北京

|
自定义你的VIEW层,比这个写的更简单
|
| 返回顶楼 |
|
|
- javaest
- 等级: 初级会员

- 性别:

- 文章: 29
- 积分: 75
- 来自: 长春

|
我的作法可能与你不同,但是也是为了SpringMvc支持Ajax请求.
扩展Spring MVC 用以支持Controller对Ajax的处理
http://javaest.javaeye.com/blog/187504
|
| 返回顶楼 |
|
|
- laiseeme
- 等级: 初级会员

- 性别:

- 文章: 1217
- 积分: 0
- 来自: 沈阳

|
renderMergedOutputModel是哪来的接口 还是个方法?
|
| 返回顶楼 |
|
|
- caco
- 等级: 初级会员

- 性别:

- 文章: 7
- 积分: 0
- 来自: 深圳

|
请问如何将jquery和jsf结合在一起呢?
我看到jones 在http://www.javaeye.com/problems/782 写的一个方式,
但是jQuery.get(url,[data],[callback])能不能在jsf中直接使用?
|
| 返回顶楼 |
|
|