Spring中自定义View的使用
我们不满足于Spring MVC为我们默认好的ViewResolver,我们就需要自己写一个ViewResolver。
相关jar下载链接
链接:https://pan.baidu.com/s/16fGzL8lAZbF_LQ_HCtxJWg
提取码:dvku
首先定义一个View
自定义模板
package my.app.view;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.View;
public class ExampleView2 implements View
{
@Override
public void render(Map<String, ?> model,
HttpServletRequest request,
HttpServletResponse response) throws Exception
{
String message = (String) model.get("message");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain");
response.getWriter().print(message);
}
}
然后在定义一个Controlloer就可以使用它了
传入一个模板,和Model
package my.app.controller;
import java.util.HashMap;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.View;
import my.app.view.ExampleView;
import my.app.view.ExampleView2;
import my.app.view.ExampleView3;
@Controller
public class HelloController
{
@GetMapping("/hello")
public Object hello(Model model)
{
model.addAttribute("message", "你好,镁铝");
View view = new ExampleView2();
return view;
}
@GetMapping("/test")
public Object test()
{
Map<String, Object> model = new HashMap<>();
model.put("message", "简约的环境,ModelAndView");
View view = new ExampleView2();
return new ModelAndView(view, model);
}
}