让指定的请求跳转到指定的页面,在springmvc.xml中配置mvc:view-controller即可。
mvc:view-controller:当我们发送一个请求时,如果没有找到对应的mapping
需要注意!使用时后边要添加:mvc:annotation-driven/
若不添加mvc:annotation-driven/,就无法使用正常的RequestMapping
<!--path为指定的请求,view-name为需要跳转的页面-->
<!--添加配置之后,就不需要再写@RequestMapping("Test")也可以跳转-->
<mvc:view-controller path="Test" view-name="/result.jsp"></mvc:view-controller>
<mvc:annotation-driven />
form标签
作用:
- 它会自动的绑定来自Model中的一个属性值到当前form对应的实体对象
- 它支持我们在提交表单的时候使用除GET和POST之外的其他方法进行提交,包括DELETE和PUT等
使用场景:
- 当编辑时, 跳转到form表单页,传统模式要在跳转前先到数据库查询数据,然后进行表单数据回显
- 使用form之前一定要保证有对应的bean,没有对应的bean时, 会自动以command为key到request域中查询,当找不到的时候, 会报异常
使用方式
- 首先要在使用的jsp页面中引入标签库
<%@taglib uri="http://www.springframework.org/tags/form" prefix="fm" %>
- 创建表单,首先要有一个User类
@Setter@Getter
public class User {
private String name;
private String age;
private String gender;
private String[] hobby = {"篮球","足球"};
private Pet pet;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
", gender='" + gender + '\'' +
", hobby=" + Arrays.toString(hobby) +
", pet=" + pet +
'}';
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="fm" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>result来了</h1>
<!--需要写创建的对象的名称-->
<!--也可以不设置modelAttribute,只需要在处理请求的时候,将model.addAttribute("command",user);key值设置为command即可-->
<fm:form >
姓名:<fm:input path="name"/><br>
年龄:<fm:input path="age"/><br>
性别:<fm:radiobutton path="gender" value="1" label="男"/>
<fm:radiobutton path="gender" value="0" label="女"/><br>
<!--path写User里的属性,items写存放在model中的所有的爱好的key值-->
爱好:<fm:checkboxes path="hobby" items="${allHobbys}"/> <%--复选框--%>
宠物:<fm:select path="pet.id" items="${petList}" itemValue="id" itemLabel="name"/><%--下拉框--%>
</fm:form>
</body>
</html>
- 处理请求(将User中,设置值,放在model里)
@RequestMapping("FormTest")
public String FormTest(Model model){
//使用集合存放所有的爱好。
ArrayList<Object> arrayList = new ArrayList<>();
arrayList.add("篮球");
arrayList.add("足球");
arrayList.add("乒乓球");
model.addAttribute("allHobbys",arrayList);
//使用集合来存放所有的宠物类型
ArrayList<Object> petList = new ArrayList<>();
Pet pet1 = new Pet();
pet1.setId(1);
pet1.setName("狗");
Pet pet2 = new Pet();
pet2.setId(2);
pet2.setName("猫");
Pet pet3 = new Pet();
pet3.setId(3);
pet3.setName("老虎");
//将宠物类型添加到List集合
petList.add(pet1);
petList.add(pet2);
petList.add(pet3);
//将List集合存在model中
model.addAttribute("petList",petList);
User user = new User();
user.setName("itlike");
user.setAge("10");
user.setGender("1");
user.setPet(pet2);//设置该用户的宠物为猫
model.addAttribute("user",user);
return "/result.jsp";
}
服务器表单校验
- 导入jar包,点击进入云盘
- 在配置文件springmvc.xml当中写上mvc:annotation-driven/
- 在模型(User类)中添加对应校验规则
- 在处理器方法的入参标记@valid注解,并且让数据回显
- 提交form表单后,跳到result2中,进行数据回显
- 数据回显的效果图:
访问静态资源
<img src="${pageContext.request.contextPath}/images/1.jpg">
- 像上边这样访问静态资源,但是会报错,是因为在web.xml中配置了ulr-pattern,会拦截
- 所以我们需要在springmvc.xml中进行配置mvc:resources,来加载.png 或者 .js 或者 .css
(两个*表示对images跟了多少层路径没有限制)
1
来源:CSDN
作者:无敌少年小旋风
链接:https://blog.csdn.net/qq_45260619/article/details/104098945