JavaWeb之Jsp的useBean、setProperty、getProperty标签

1.<jsp:useBean>

Person.java

package zh.bean.demo;

public class Person {

	private String name;
	private int age;

	public Person() {

	}

	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public int getAge() {
		return age;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}

}

访问路径:http://localhost:8080/Javaweb01/jsp/useBean.jsp


2.<jsp:setProperty>

(1)方式一

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="zh.bean.demo.Person"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<jsp:useBean id="person" class="zh.bean.demo.Person" scope="page"></jsp:useBean>
	
	<!-- 访问路径中参数名为name的值才会赋值给person对象 
	例如:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh-->
	<jsp:setProperty name="person" property="name"/>
	
	<%
		person = (Person)pageContext.getAttribute("person");
		out.print(person);
	 %>
	
</body>
</html>

访问路径:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh


访问路径为:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh&age=19,也只有参数名为name的值才会赋值给person对象。


(2)方式二

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="zh.bean.demo.Person"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<jsp:useBean id="person" class="zh.bean.demo.Person" scope="page"></jsp:useBean>
	
	<!--访问路径中与person对象属性同名的参数值才会赋值给person对象 -->
	<jsp:setProperty name="person" property="*"/>
	
	<%
		person = (Person)pageContext.getAttribute("person");
		out.print(person);
	 %>
	
</body>
</html>

访问路径:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh&age=19


访问路径:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh&age=19&sex=man


(3)方式三

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="zh.bean.demo.Person"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<jsp:useBean id="person" class="zh.bean.demo.Person" scope="page"></jsp:useBean>
	
	<!--将访问路径中指定的参数值赋给person对象 -->
	<jsp:setProperty name="person" property="name" param="username"/>
	
	<%
		person = (Person)pageContext.getAttribute("person");
		out.print(person);
	 %>
	
</body>
</html>

访问路径:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?username=hao&name=huan。由于指定参数的原因,即使访问路径中存在name参数,也不把它赋给person的name属性,而是把username值赋给person的name属性。


(4)方式四

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="zh.bean.demo.Person"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<jsp:useBean id="person" class="zh.bean.demo.Person" scope="page"></jsp:useBean>
	
	<!--使用value的值给person对象的属性赋值,此时忽略访问路径中的所有参数 -->
	<jsp:setProperty name="person" property="name" value="xxdty"/>
	
	<%
		person = (Person)pageContext.getAttribute("person");
		out.print(person);
	 %>
	
</body>
</html>

访问路径:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh&name=22。


3.<jsp:getProperty>

User.java

package zh.bean.demo;

public class User {

	private String name;
	private String gender;
	private String education;
	private String email;

	public User() {

	}

	public User(String name, String gender, String education, String email) {
		super();
		this.name = name;
		this.gender = gender;
		this.education = education;
		this.email = email;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getEducation() {
		return education;
	}

	public void setEducation(String education) {
		this.education = education;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Override
	public String toString() {
		return "User [name=" + name + ", gender=" + gender + ", education="
				+ education + ", email=" + email + "]";
	}

}

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

	<form action="${pageContext.request.contextPath}/jsp/user.jsp" method="post">
		
		姓名:<input type="text" name="name"></br> 
		性别:<input type="radio" name="gender" value="man" checked="checked">男 
		    <input type="radio" name="gender" value="woman">女</br> 
		学历:<select name="education">
			<option value="select">-请选择-</option>
			<option value="high_school">高中</option>
			<option value="Undergraduate">大学本科</option>
			<option value="master">硕士</option>
		    </select></br>
		<!-- 【注意】:表单里的mail和User类的属性email不同 -->
		邮箱:<input type="text" name="mail"></br> 
		
		<input type="submit" value="提交">

	</form>

</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- 创建user -->
	<jsp:useBean id="user" class="zh.bean.demo.User" scope="page"></jsp:useBean>
	
	<!-- 属性赋值 -->
	<jsp:setProperty property="*" name="user"/><!-- 与属性名同名的参数自动赋值给相应的属性 -->
	<jsp:setProperty property="email" param="mail" name="user"/><!-- 使用param为email属性赋值 -->
	
	<!-- 输出属性值 -->
	姓名:<jsp:getProperty property="name" name="user"/></br>
	性别:<jsp:getProperty property="gender" name="user"/></br>
	学历:<jsp:getProperty property="education" name="user"/></br>
	邮箱:<jsp:getProperty property="email" name="user"/>
	
</body>
</html>

访问路径:http://localhost:8080/Javaweb01/jsp/login.jsp


user.jsp显示结果:


猜你喜欢

转载自blog.csdn.net/qq_41706150/article/details/80463082
今日推荐