springMVC入门--传递参数的方式
如何利用springMVC传递参数呢?
传递的类型:可以是基本数据类型,也可以是数组、List、Map等
1.直接传递一个个的数据类型
1)加入spring支持
2)配置web.xml文件
<span style="font-size:24px;"><?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>springmvc-02-parameter</display-name>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app></span>
3)新建springmvc-servlet.xml文件,进行配置
<span style="font-size:24px;"><?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:annotation-config></context:annotation-config>
<context:component-scan base-package="com.etc.controller"></context:component-scan>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans></span>
4)在index.jsp中写登录页面
<span style="font-size:24px;"><html>
<body>
<form action="login"> //点击登录之后会达到login路径,与LoginController中的@RequestMapping("/login")相对应
username:<input name="username">
password:<input name="password">
<input type="submit" value="login">
</form>
</body>
</html></span>
5)在com.etc.controll中写LoginController.java
<span style="font-size:24px;">package com.etc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class LoginController {
@RequestMapping("/login") //指定路径名
public String login(String username,String password) //直接传入参数,即可获得
{
System.out.println("username="+username+",password="+password);
return "success";
}
}</span>
6)在WEB-INF下新建jsp文件夹,新建success.jsp文件
<span style="font-size:24px;"><html>
<body>
<span style="white-space:pre"> </span> login success
</body>
</html></span>
7)右键运行,登录页面填写用户名和密码,输出:usename=lin,password=1
2.将数据封装成一个对象,然后进行传递
1)---4)步如上,不改变任何改变代码
5)在com.etc.vo下新建User.java
<span style="font-size:24px;">package com.etc.vo;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password + "]";
}
}
</span>
6)更改LoginController.java
<span style="font-size:24px;">package com.etc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.etc.vo.User;
@Controller
public class LoginController {
@RequestMapping("/login")
public String login(User user)
{
System.out.println(user);
return "success";
}
}
</span>
7)右键运行,登录页面填写用户名和密码,输出:User [username=1, password=1]
3.传递不同的参数,数组,List,Map
1)--3)步如上面一样,代码不改变
4)更改index.jsp页面如下:
<span style="font-size:24px;"><pre name="code" class="html"><html>
<body>
<form action="login">
username:<input name="username"><br>
password:<input name="password"><br>
age:<input name="age"><br>
hobby:<input name="hobby"><input name="hobby"><br>
hobby2:<input name="hobby"><input name="hobby"><br>
map:<input name="map[username]"><input name="map[password]"><br>
<input type="submit" value="login">
</form>
</body>
</html></span>
5)更改User.java如下:
<span style="font-size:24px;">package com.etc.vo;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class User {
private String username;
private String password;
private int age;
private String[] hobby;
private List hobby2;
private Map map;
public String[] getHobby() {
return hobby;
}
public void setHobby(String[] hobby) {
this.hobby = hobby;
}
public List getHobby2() {
return hobby2;
}
public void setHobby2(List hobby2) {
this.hobby2 = hobby2;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password
+ ", age=" + age + ", hobby=" + Arrays.toString(hobby)
+ ", hobby2=" + hobby2 + ", map=" + map + "]";
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
</span>
6)步骤不改变
7)右键运行,输入相应的信息,在控制台得到的信息如下:
User [username=liu, password=123, age=12, hobby=[music, sports, game, watchTV], hobby2=null, map={password=343, username=zoey}]
页面跳转到成功页面,输出login success
User [username=liu, password=123, age=12, hobby=[music, sports, game, watchTV], hobby2=null, map={password=343, username=zoey}]
页面跳转到成功页面,输出login success