不使用thymeleaf等模板,怎么直接返回html页面
将index.html放到static文件夹下面, return "index.html"就可以了
controller注解@Controller
如果昨天问题q上解决了望采纳
一般来说resources/static或者resources/public文件夹可以用来提供js,css,图片等文件访问。不经过配置,直接返回html会报404错误。提供静态html访问主要需要如下配置(懒得翻译了。。。)
You should create a class that extends WebMvcConfigurerAdapter
Your class should have @Configuration annotation.
You class should not have @EnableMvc annotation.
Override addViewControllers method and add your mapping.
Override configurePathMatch method and update suffix path matching
其实,添加如下配置类就好了
@Configuration
public class MvcConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/error").setViewName("error.html");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
}
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
super.configurePathMatch(configurer);
configurer.setUseSuffixPatternMatch(false);
}
}
返回modalAndVIew
@RequestMapping("/")
public ModelAndView index()
return new ModelAndView("index")
直接输出页面信息也是可以的,不使用ModelAndView。你把它当做成一个普通的servlet
这个应该可以帮助你 这个需要前台重定向
@RequestMapping(value = "/login", method = RequestMethod.POST)
public ModelAndView login(String username, String password) {
// 从SecurityUtils里边创建一个 subject
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username, password);
ModelAndView mv = new ModelAndView(new MappingJackson2JsonView());
// 执行认证登陆 将用户名密码传递给shiro,shiro 就会登录
// 那shiro怎么判断登录成功与失败呢? 没有任何异常,就代表登录成功。只要有任何异常,就代表登录失败
// 异常分为密码错误和用户名不存在
try{
subject.login(token);
// 登录成功,跳转
mv.addObject("code",200);
mv.addObject("msg","登录成功");
mv.addObject("result",null);
mv.setViewName("redirect:/api/test");
} catch (UnknownAccountException ex){
// 用户名不存在
// notLogin 代表返回这个页面,而redirect:notLogin指的是执行这个请求
// 但是redirect消息会丢失
mv.addObject("code",500);
mv.addObject("msg","用户名不存在");
mv.addObject("result",null);
} catch (IncorrectCredentialsException ex){
// 用户名不存在
// model.addAttribute("msg","密码错误");
//return "redirect:/notLogin";
mv.addObject("code",500);
mv.addObject("msg","密码错误");
mv.addObject("result",null);
}
return mv;
}
那么在使用多模块多画面的情况下,怎么处理?