春のmvc応答データ

1.ページジャンプ

  • 転送、ビューリゾルバーがある場合は、フルパス/pages/success.jspを書き込みます
@RequestMapping("/save4")
public String save4(HttpServletRequest req) {
    
    
    req.setAttribute("key", "value 4");
    return "forward:/pages/success.jsp";
}
  • リダイレクト
@RequestMapping(value = "/redirect")
public String testRedirect() {
    
    
    return "redirect:/pages/success.jsp";
}
  1. ModelAndViewオブジェクトを返す
    /**
     * 页面跳转之
     * @return 返回视图模型对象
     */
    @RequestMapping(value = "/save1")
    public ModelAndView save1() {
    
    
        System.out.println("save running..");

        ModelAndView modelAndView = new ModelAndView();
        // 视图对象用来展示数据  跳转到success页面
        modelAndView.setViewName("success");

        // 模型对象用来封装对象
        modelAndView.addObject("key", "i am value");

        return modelAndView;
    }
  1. ModelAndViewをパラメーターとして、springmvcフレームワークが自動的に挿入します
    /**
     * model and view 作为参数, 返回ModelAndView
     * @param modelAndView
     * @return
     */
    @RequestMapping("/save2")
    public ModelAndView save2(ModelAndView modelAndView) {
    
    
        modelAndView.setViewName("success");
        modelAndView.addObject("key", "i am value 1");
        return modelAndView;
    }
  1. 正式なパラメータとしてのモデル
    /**
     * model作为参数 返回视图可
     * @param model
     * @return
     */
    @RequestMapping("/save3")
    public String save3(Model model) {
    
    
        model.addAttribute("key", "i am value 3");
        return "success";
    }

2.データ@ResponseBodyアノテーションを書き戻します

@ResponseBody注解简单介绍,用来返回字符串,对象。

1. @ResponseBody 告知spring mvc框架,该方法,不进行视图跳转,直接进行视图响应

2. 回写json,Jackson,(jackson-core, jackson-databind, jackson-annotations)

3. 回写对象,或者集合, 封装对象或者转换json的步骤,需要繁琐的配置。RequestMappingHandlerAdapter注入集合。。
       
4. 使用<mvc:annotation-driven/>自动集成转换json

  • 文字列を書き戻す
    @RequestMapping("/save5")
    @ResponseBody // 告知spring mvc框架 回写字符串,而不是视图跳转
    public String save5() {
    
    
        return "hello world !";
    }
  • json文字列を返し、Jacksonを使用し、pomをインポートします
    @RequestMapping("/save6")
    @ResponseBody
    public String save6() {
    
    

        User user = new User();
        user.setName("jack");
        user.setAge(18);

        ObjectMapper objectMapper = new ObjectMapper();
        String str = null;
        try {
    
    
            str = objectMapper.writeValueAsString(user);
        } catch (JsonProcessingException e) {
    
    
            e.printStackTrace();
        }
        return str;
    }
  • mvcによる複雑な構成、または注釈ドライブの追加
    /**
     * 返回用户对象
     * @return mvc框架通过配置帮你转为json格式 / mvc注解驱动
     */
    @RequestMapping(value = "/save7")
    @ResponseBody
    public User save7() {
    
    
        User user = new User();
        user.setName("bitqian");
        user.setAge(19);

        return user;
    }
  • ジャクソンへのプロセッサーマッパー注入
   <!-- 配置处理器映射器 用于json等的转换-->
   <bean id="requestMappingHandlerAdapter"
         class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
           <property name="messageConverters">
                <list>
                     <!-- 可配置 多个 消息转换器-->
                     <!-- 配置Jackson转换器-->
                     <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
                </list>
           </property>
   </bean>
  • または、上記の代わりに駆動されるより良い注釈
<mvc:annotation-driven/>

おすすめ

転載: blog.csdn.net/qq_44783283/article/details/108310435