`
MauerSu
  • 浏览: 514380 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Spring 3 mvc中返回pdf,json,xml等不同的view

 
阅读更多
源:http://jackyrong.iteye.com/blog/1874918
评:
  spring mvc就是好,特别是rest风格的话,一个
org.springframework.web.servlet.view.ContentNegotiatingViewResolver就可以根据不同的场景返回不同的view了,比如返回json,xml,pdf等.马上看代码实现

先是一个简单的pojo
Java代码  收藏代码

    package com.hmkcode.vo; 
      
    import javax.xml.bind.annotation.XmlRootElement; 
      
    @XmlRootElement(name = "person") 
    public class Person { 
      
        private int id; 
        private String name; 
        public int getId() { 
            return id; 
        } 
        public void setId(int id) { 
            this.id = id; 
        } 
        public String getName() { 
            return name; 
        } 
        public void setName(String name) { 
            this.name = name; 
        } 
        public String toString(){ 
            return "ID: "+id+" - Name: "+name; 
        } 
      
    } 


   注意使用@XmlRootElement标签之。

然后是controller:
 
Java代码  收藏代码

    @Controller 
    public class MyController { 
      
        @RequestMapping("/view") 
        public Person getPerson(Model model){ 
            Person person = new Person(); 
            person.setId(1); 
            person.setName("test"); 
            model.addAttribute("person",person); 
            return person; 
        } 



  然后分别假设要导出为PDF的view,引入著名的itext了;
Java代码  收藏代码

    public class PdfView extends AbstractPdfView { 
      
        protected void buildPdfDocument( 
            Map model, 
            Document doc, 
            PdfWriter writer, 
            HttpServletRequest req, 
            HttpServletResponse resp) 
            throws Exception { 
      
          
            Person person = (Person) model.get("person"); 
            doc.add( new Paragraph(person.toString())); 
      
        } 


   这里演示简单往itext中写入一个输出而已;

然后是web.xml:

Java代码  收藏代码

    <servlet> 
            <servlet-name>springmvc</servlet-name> 
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
            <load-on-startup>1</load-on-startup> 
        </servlet> 
      
        <servlet-mapping> 
            <servlet-name>springmvc</servlet-name> 
            <url-pattern>/rest/*</url-pattern> 
        </servlet-mapping> 


  最核心的配置来了:

Java代码  收藏代码

       <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
    <property name="order" value="1" /> 
    <property name="mediaTypes"> 
      <map> 
         <entry key="json" value="application/json" /> 
         <entry key="xml" value="application/xml" /> 
         <entry key="pdf" value="application/pdf" /> 
     
      </map> 
    </property> 
     
    <property name="defaultViews"> 
      <list> 
        <!-- JSON View --> 
        <bean 
          class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"> 
        </bean> 
        <!--  XML view --> 
          <bean class="org.springframework.web.servlet.view.xml.MarshallingView"> 
          <constructor-arg> 
              <bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> 
                 <property name="classesToBeBound"> 
                  <list> 
                     <value>com.test.Person</value> 
                  </list> 
                 </property> 
              </bean> 
          </constructor-arg> 
        </bean> 
        <!--  PDF view --> 
        <bean class="com.test.PdfView"> 
     
          </bean> 
       </list> 
    </property> 
    <property name="ignoreAcceptHeader" value="true" /> 
     
    t;/bean> 


 
   可以看到,其中使用的是:
org.springframework.web.servlet.view.ContentNegotiatingViewResolver,对其pdf,xml.json进行分别的view设置,JSON用的是著名的jackyson去解析了;

最后,通过rest风格的地址,比如http://localhost/view/view.json,返回json;
http://localhost/view/view.pdf,则导出到pdf,http://localhost/view/view.xml,
返回前端就xml了,真的十分方便呀
分享到:
评论
1 楼 变脸小伙 2016-02-02  
引用
[color=red][/color]

百度推广中运用的技术,一直很惬意去思索
团队的帮助下,运用其中的知识点。于如果我们的域对象是用java编写,那么在传递给json序列化器之前,我们仍需要手动把它

相关推荐

    spring MVC 对 ResponseBody返回json数据进行脱敏处理

    在Spring MVC框架中,开发Web应用时经常需要将对象转换为JSON格式的数据并返回给客户端。然而,在处理敏感数据时,我们可能希望对这些数据进行脱敏,即隐藏或替换某些字段,以保护用户隐私或者确保数据安全性。本文...

    spring mvc(整合了json)

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在现代 Web 开发中,JSON(JavaScript Object Notation)作为一种...

    spring mvc生成xml或json

    在Spring MVC框架中,开发人员经常需要处理不同的数据交换格式,如XML和JSON,以便与客户端进行交互。这两种格式在Web应用中广泛用于传输数据,因为它们轻量级且易于解析。下面我们将深入探讨如何在Spring MVC中生成...

    Spring3 MVC Ajax with JSON

    **Spring3 MVC与Ajax结合使用JSON** 在现代Web开发中,Spring框架的MVC模块与Ajax和JSON的集成是创建动态、响应式用户界面的关键技术。这个"Spring3 MVC Ajax with JSON"项目提供了一个Eclipse工程,包含了实现这一...

    spring-mvc-jsonview源代码

    本篇文章将通过解析“spring-mvc-jsonview”源代码,深入探讨Spring MVC如何支持AJAX请求,并提供一个实际的使用教程。 一、JSON视图解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    Spring.MVC学习指南.pdf

    这份“Spring.MVC学习指南.pdf”很可能是为了帮助开发者深入理解和掌握Spring MVC的核心概念、工作原理以及实践技巧。下面将详细阐述Spring MVC的相关知识点。 1. **核心组件**: - **DispatcherServlet**:Spring...

    spring3-miniweb.rar_spring json_spring3_spring3 mvc

    在这个名为"spring3-miniweb.rar"的压缩包中,我们关注的是如何在Spring 3中处理JSON数据,这在现代Web应用中非常常见,因为JSON是数据交换的首选格式。下面将详细解释Spring MVC中处理JSON的基本概念和实现步骤。 ...

    spring-mvc-官方中文文档

    12. **消息转换**:Spring MVC 提供了 HttpMessageConverter 接口,用于将 HTTP 请求和响应体与 Java 对象之间进行转换,支持 JSON、XML 等格式。 13. **RESTful 风格**:Spring MVC 可以很方便地支持 RESTful 风格...

    spring—mvc -json

    在实际开发中,还可以利用Spring Data REST自动创建RESTful服务,或者使用`@JsonInclude`和`@JsonView`等注解控制JSON序列化的细节。通过深入理解和掌握这些知识点,开发者能够更高效地构建和维护JSON接口。

    spring4 mvc json配置jar包

    在Spring4 MVC的配置中,通常需要在`web.xml`或Spring的配置文件中添加MVC的JSON处理器,比如`Jackson2HttpMessageConverter`,以便让Spring MVC能够自动处理JSON请求和响应。同时,需要在`pom.xml`或构建文件中引入...

    Spring3MVC和jQuery的集成

    配置Spring3 MVC通常涉及web.xml的设置、DispatcherServlet的配置以及Spring的上下文配置(如beans.xml)。 接下来,让我们转向jQuery。jQuery简化了JavaScript编程,提供了一套简洁的API来处理DOM操作,如元素选择...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    在实际开发中,Spring MVC还与其他Spring模块,如Spring AOP(面向切面编程)、Spring Security(安全)、Spring Data(数据访问)等深度集成,以提供更全面的解决方案。 对于PDF和Excel格式的输出,Spring MVC可以...

    spring Mvc配置xml使ResponseBody返回Json的方法示例

    本篇文章将详细介绍如何在Spring MVC的XML配置中设置,以便让`@ResponseBody`自动将Java对象转换为JSON。 首先,`@ResponseBody`的作用是在方法返回的对象不是HTML片段而是其他格式数据(例如JSON或XML)时使用的。...

    spring-mvc-showcase

    此外,该项目还展示了如何配置 Spring MVC,例如在 web.xml 中配置 DispatcherServlet,以及在 Spring 配置文件中定义 HandlerMapping 和 HandlerAdapter 等。这有助于理解 Spring MVC 的工作流程。 "spring-mvc-...

    RESTful_Spring3MVC

    2. 表述(Representation):资源的状态可以通过不同的格式(如JSON或XML)进行表述。 3. 状态转移(State Transfer):客户端通过HTTP方法(GET、POST、PUT、DELETE等)来改变服务器上的资源状态。 在Spring 3 MVC...

    spring3MVC.pdf

    Spring MVC允许在控制器中使用`@ExceptionHandler`注解来处理特定类型的异常,提供统一的错误页面或JSON响应。此外,Spring提供了测试工具,如`MockMvc`,使得编写单元测试和集成测试变得更加容易。 综上所述,...

    精通spring mvc 4 看透springmvc pdf 高清完全版

    书中详细介绍了如何定义RESTful资源,使用HTTP动词(GET、POST、PUT、DELETE等)处理操作,以及如何处理JSON和XML数据格式。 在实战部分,本书提供了丰富的案例和示例代码,让读者能够在实践中学习和应用所学知识。...

    Spring MVC返回JSON数据 用到的jar包

    在Spring MVC中,为了将Java对象转换成JSON格式并返回给客户端,我们需要依赖于JSON库。在提供的信息中,提到了`jackson-all-1.9.x.jar`系列的包,这是Jackson库的一个早期版本。Jackson是一个非常流行的JSON处理库...

    Spring+Servlet读取数据库返回JSON数据(源码).zip

    在Spring MVC中,我们可以使用Jackson库或者Gson库将Java对象转换为JSON字符串,或者将JSON字符串反序列化为Java对象。 在这个示例项目中,"dbtest"可能是一个包含数据库连接和查询的Java类或者包。Spring框架提供...

    spring mvc + spring + mybatis+json整合

    Spring MVC是Spring框架的一部分,专用于构建Web应用程序的Model-View-Controller(MVC)架构。MyBatis则是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。JSON(JavaScript Object Notation)是一...

Global site tag (gtag.js) - Google Analytics