Spring MVC框架:第三章:获取请求参数和页面跳转控制(1)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
return “result”;

}

④表单对应的实体类包含级联属性

public class Student {

private Integer studentId;

private String studentName;

private School school;

private List subjectList;

private Subject[] subjectArray;

private Set teacherSet;

private Map<String,String> scoreMap;

{

//在各种常用数据类型中,只有Set类型需要提前初始化

//并且要按照表单将要提交的对象数量进行初始化

//Set类型使用非常不便,要尽可能避免使用Set

teacherSet = new HashSet<>();

teacherSet.add(new Teacher());

teacherSet.add(new Teacher());

teacherSet.add(new Teacher());

}

handler方法

@RequestMapping(“/get/param/multi/value”)

public String getParamOneNameMultiValue(@RequestParam(“team”) List teamList) {

for (String team : teamList) {

System.out.println(team);

}

return “target”;

}

@RequestMapping(“/get/param/entity”)

public String getParamEntity(Employee employee) {

System.out.println(employee);

return “target”;

}

//@RequestMapping(“/get/param/entity”)

public String getParamEntityParam(@RequestParam(“empName”) String empName) {

System.out.println(“empName=”+empName);

return “target”;

}

@RequestMapping(“/get/param/fuza”)

public String getParamFuza(Student student) {

System.out.println(“StudentId=”+student.getStudentId());

System.out.println(“StudentName=”+student.getStudentName());

System.out.println(“SchoolId=”+student.getSchool().getSchoolId());

System.out.println(“SchoolName=”+student.getSchool().getSchoolName());

List subjectList = student.getSubjectList();

for (Subject subject : subjectList) {

System.out.println(“科目名称=”+subject.getSubjectName());

}

Subject[] subjectArray = student.getSubjectArray();

for (Subject subject : subjectArray) {

System.out.println(“科目名称=”+subject.getSubjectName());

}

Set teacherSet = student.getTeacherSet();

for (Teacher teacher : teacherSet) {

System.out.println(“老师姓名=”+teacher.getTeacherName());

}

Map<String, String> scoreMap = student.getScoreMap();

Set keySet = scoreMap.keySet();

for (String key : keySet) {

String value = scoreMap.get(key);

System.out.println(key+“:”+value);

}

return “target”;

}

提交数据的表单

学生编号:

学生姓名:

学校编号:

学校名称:

科目1名称:

科目2名称:

科目3名称:

科目4名称:

科目5名称:

科目6名称:

老师姓名:

老师姓名:

老师姓名:

考试成绩:

考试成绩:

考试成绩:

考试成绩:

考试成绩:



编号:

姓名:

年龄:

工资:



请选择你最喜欢的球队:

德国

巴西

意大利

中国

韩国

web.xml配置,解决字符乱码

CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

CharacterEncodingFilter

/*

页面跳转控制

1.转发指令

@RequestMapping(“/testForward”)

public String testForward() {

return “forward:/target.jsp”;

}

forward:/target.jsp

表示方法执行完成后转发到/target.jsp。想一想有了视图解析器拼接字符串指定转发页面之后forward是否多余呢?

2.重定向指令

@RequestMapping(“/testRedirect”)

public String testRedirect() {

return “redirect:/target.jsp”;

}

redirect:/target.jsp

表示方法执行完成后重定向到/target.jsp。这里重定向中使用的路径和我们以前的写法不同,没有以Web应用名称开头,这是因为SpringMVC会替我们加上。

3.使用原生对象完成转发

@RequestMapping(“/testForward”)

public void testForward2(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.getRequestDispatcher(“/target.jsp”).forward(request, response);

}

你看,使用原生request对象执行转发后,handler方法的返回值就必须是void,意思是我们自己指定了响应方式,不需要SpringMVC再进行处理了。一个请求只能有一个响应,不能在handler方法里面给一个,然后SpringMVC框架再给一个。

4.使用原生对象完成重定向

@RequestMapping(“/testRedirect”)

public void testRedirect2(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.sendRedirect(request.getContextPath()+“/target.jsp”);

}
使用原生response对象执行重定向后,handler方法的返回值同样需要设置为void,原因同上。

最后

手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友

image.png

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.sendRedirect(request.getContextPath()+“/target.jsp”);

}
使用原生response对象执行重定向后,handler方法的返回值同样需要设置为void,原因同上。

最后

手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友

[外链图片转存中…(img-av1K7MSN-1714751947216)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值