将jsp放在webapp下的WEB-INF的jsps(自己建的)
- 把jsp移动过后,在dispacher-servlet.xml中改一下路径
<!-- 配置视图解析器,用于将Handler方法中返回的视图名解析成真正可展示的页面 -->
<mvc:view-resolvers>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsps/" />
<property name="suffix" value=".jsp" />
</bean>
</mvc:view-resolvers>
- 改后 idea会在testColler类以及其他类中自动改return的值,这个时候你要手动改回来
@RequestMapping("/param")
public String testRequestParam(@RequestParam("sname") String sname, @RequestParam("age") Integer age, Integer gender, Model model) {
model.addAttribute("sname", sname);
model.addAttribute("age", age);
log.debug("sname: " + sname + ", age: " + age+", gender: " + gender);
return "WEB-INF/jsps/hello";
}
//改成return "hello";
下面这个是可看不可看的(在后面输入指定要跳转的jsp页面)
package com.lanou3g.springmvc.web;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* 通过代码去跳转到JSP(不推荐,只是演示一下,可以忽略)
*/
@Controller
@Deprecated
public class CodeViewController {
@RequestMapping("/{page}")
public String index(@PathVariable("page") String page) {
System.out.println("page: " + page);
return page;
}
}
JSON解析
//@Controller
@RestController
public class JsonController {
@Autowired
private StudentService studentService;
/**
* 手工转换JSON
* @param id
* @param resp
* @return
*/
// @ResponseBody // 将响应内容直接写入响应体中,而不是通过viewResolver去找视图
@RequestMapping("/query_stu1/{id}")
public String queryStudent1(@PathVariable Integer id, HttpServletResponse resp) {
Student student = studentService.queryStudentById(id);
return JSON.toJSONString(student);
}
/**
* 通过全局配置(MessageConverter),自动转换JSON
* @param id
* @param resp
* @return
*/
@RequestMapping("/query_stu/{id}")
public Student queryStudent(@PathVariable Integer id, HttpServletResponse resp) {
return studentService.queryStudentById(id);
}
@RequestMapping("/query_stus")
public List<Student> queryStudentList(HttpServletResponse resp) {
return studentService.queryStudentList();
}
}
手动JSON
自动JSON